ODBC 드라이버의 차이점
Windows 1064비트 Pro를 사용하는 SQL Server 2016에서 데이터베이스에 대한 시스템 DSN(64비트)을 설정하고 있었습니다.데이터 원본을 설정할 드라이버를 선택하라는 메시지가 표시되었지만 다음과 같은 선택 항목이 있습니다.
- SQL Server용 ODBC 드라이버 13
- SQL 서버
- SQL Server Native Client 11.0
- SQL Server Native Client RDA 11.0
이 모든 드라이버로 데이터 소스를 설정할 수 있을 것 같습니다.그럼 속도와 효율성 면에서 어떤 것을 선택해야 하나요?그들 사이의 차이점은 무엇입니까?
감사해요.
제이슨이야.
SQL Server용 ODBC 드라이버
ODBC는 SQL Server에 연결하기 위해 C, C++, PHP, Python 등으로 작성된 응용프로그램을 위한 기본 네이티브 데이터 액세스 API입니다.
데이터 통합 시나리오에서 널리 사용됩니다.
또한 Windows에서 응용 프로그램을 개발하여 Linux에 배포하는 경우에도 좋습니다.
SQL 서버
SQL Server 드라이버의 전체 이름은 SQL Server ODBC 드라이버입니다.sql 2000 이후의 오래된 드라이버입니다.SQL Server 2016에 연결하는 데 사용할 수 있지만 SQL Server 2016의 새로운 기능에 액세스할 수 없습니다.
SQL Server 기본 클라이언트
SQL Server Native Client에는 SQL Server에 대한 네이티브 연결을 지원하고 SQL Server 2016의 모든 기능을 지원하는 SQL OLE DB 제공자와 SQL ODBC 드라이버가 모두 포함되어 있습니다.Windows 환경에서 최고입니다.
SQL Server 네이티브 클라이언트 RDA
마이크로소프트 SQL 서버 Compact 3.5의 RDA(원격 데이터 액세스)를 통해 응용 프로그램은 원격 SQL 서버 데이터베이스 테이블의 데이터에 액세스할 수 있습니다.
또한 SQL Server Compact 3.5에서 해당 데이터를 저장, 읽기 및 업데이트한 다음 원래 SQL Server 테이블을 업데이트할 수 있습니다.
RDA는 향후 릴리스에서 제거될 예정이므로 사용하지 마십시오.
따라서 위의 기준에 따라 sql 드라이버를 선택합니다.
SQL Server용 Microsoft ODBC 드라이버(MSODBCSQL)
이 드라이버는 2013년 SQL Server Native Client의 후속 제품으로 발표되었습니다.최신 SQL Server 버전과 함께 설치됩니다.클라이언트용 독립 실행형 설치 프로그램이 있습니다.Microsoft SQL Server 드라이버 기록에서는 ODBC용 "SQL Server" 및 "SQL Server Native Client"보다 이 드라이버를 권장합니다."SQL Server Native Client"에 드라이버 인식 연결 풀링, 연결 복원력, 비동기 실행(폴링), Always Encrypted 지원, 최신 SQL Server 호환성(Azure SQL 포함) 및 지원되는 운영 체제(Linux 및 macOS 포함) 등의 기능이 추가되었습니다.SQL Server 블로그의 현재 개발 현황을 확인할 수 있습니다(SQLNCli 팀 블로그의 이전 게시물 포함).
Driver={ODBC Driver XX for SQL Server}
(XX
드라이버 버전으로 대체되었습니다.시스템 요구 사항, 설치 및 드라이버 파일을 참조하십시오.)
SQL Server 네이티브 클라이언트(SQLNCLI)
SQL Server 2005와 함께 도입되었으며 SQL Server와 함께 제공됩니다(SQL Server 기능 팩에서 설치 가능)."SQL Server"에 추가된 기능: 다중 활성 결과 세트(MARS), 사용자 정의 데이터 유형(UDT), 쿼리 알림, 스냅샷 분리 및 XML 데이터 유형 지원.SQL Server 2008 버전에는 새로운 날짜 및 시간 유형에 대한 지원도 추가되었습니다.
Driver={SQL Server Native Client}
(SQL Server 2005)
Driver={SQL Server Native Client 10.0}
(SQL Server 2008)
Driver={SQL Server Native Client 11.0}
SQL Server 2012)
SQL Server 네이티브 클라이언트 RDA
RDA(원격 데이터 액세스)는 "애플리케이션이 원격 SQL 서버 데이터베이스 테이블의 데이터에 액세스할 수 있도록" 지원하는 SQL Server Compact 기능입니다.설명서를 많이 찾을 수는 없지만 이 드라이버는 Compact Edition을 사용한 복제 시나리오를 지원하기 위한 것으로 보입니다.
SQL 서버(SQLSRV32)
마이크로소프트 MDAC(데이터 액세스 구성 요소)(현재는 윈도우즈 데이터 액세스 구성 요소(WDAC)라고 함)에 포함되어 있습니다.이 드라이버는 Windows(98 및 NT 4.0 이후)에서 기본적으로 사용할 수 있습니다.
Driver={SQL Server}
설치한 드라이버를 확인하려면 파워셸(32/64비트 - 사용할 드라이버 아키텍처에 따라 다름)을 실행합니다.
OLEDB
(New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
ODBC
Get-OdbcDriver | select Name,Platform
개요
https://learn.microsoft.com/en-us/sql/connect/connect-history#odbc
SQL Server용 마이크로소프트 ODBC 드라이버에는 세 가지 세대가 있습니다.
- 첫 번째 "SQL Server" ODBC 드라이버는 여전히 윈도우즈 데이터 액세스 구성 요소의 일부로 제공됩니다.새 개발에는 이 드라이버를 사용하지 않는 것이 좋습니다.
- SQL Server 2005부터 SQL "Server Native Client 10.x/11.x/12.x"는 ODBC 인터페이스를 포함하며 SQL Server 2005에서 SQL Server 2012까지 함께 제공된 ODBC 드라이버입니다.새 개발에는 이 드라이버를 사용하지 않는 것이 좋습니다.
- SQL Server 2012 이후에는 최신 서버 기능으로 업데이트되는 드라이버가 Microsoft ODBC Driver for SQL Server입니다.
SQL 서버
MDAC 패키지(https://support.microsoft.com/en-us/help/899456) 의 오래된 것으로, 지금은 XP/2003 이후)에 Windows-OS가 포함되어 있습니다. https://learn.microsoft.com/en-us/sql/connect/connect-history#mdacwdac-releases
...Windows Vista를 시작으로 이제 데이터 액세스 구성 요소를 Windows Data Access Components(Windows DAC)라고 부릅니다.SQL Server Native Client는 SQL Server 데이터베이스에 대한 기본 데이터 액세스를 제공하지만 SQL Server 2005(9.x)의 새로운 기능을 제공하는 동시에 이전 버전과의 역호환성을 유지하도록 특별히 설계되었습니다.
SQL Server 기본 클라이언트
https://learn.microsoft.com/en-us/sql/connect/connect-history#odbc
SQL Server Native Client는 OLE DB 및 ODBC에 모두 사용되는 독립 실행형 라이브러리입니다.SQL Server Native Client(종종 SNAC)는 SQL Server 2005 ~ 2012에 포함되었습니다.SQL Server Native Client는 SQL Server 2005에서 SQL Server 2012까지 도입된 새로운 기능을 활용해야 하는 애플리케이션에 사용할 수 있습니다. (Microsoft/Windows Data Access 구성 요소는 SQL Server의 이러한 새 기능에 대해 업데이트되지 않습니다.)SQL Server 2012 이후의 새로운 기능의 경우 SQL Server Native Client는 업데이트되지 않습니다.향후 새로운 SQL Server 기능을 활용하려면 Microsoft ODBC Driver for SQL Server 또는 Microsoft OLE DB Driver for SQL Server로 전환합니다.
SQL Server 네이티브 클라이언트 RDA
같이 왔어요.NET Compact Framework 3.5
SQL Server용 ODBC 드라이버
https://learn.microsoft.com/en-us/sql/connect/connect-history#odbc
SQL Server 2012 이후에는 SQL Server용 기본 ODBC 드라이버가 개발되어 SQL Server용 Microsoft ODBC 드라이버로 릴리스되었습니다.
MSOLEDBSQL - SQL Server용 Microsoft OLE DB 드라이버
이 드라이버는 더 이상 사용되지 않으며 나중에는 더 이상 사용되지 않습니다.
새 OLE DB 공급자의 이름은 MSOLEDBSQL(Microsoft OLE DB Driver for SQL Server)입니다.새 공급자가 최신 서버 기능으로 업데이트됩니다.기존 응용 프로그램에서 새로운 Microsoft OLE DB Driver for SQL Server를 사용하려면 연결 문자열을 SQLOLEDB 또는 SQLNCLI에서 MSOLEDBSQL로 변환할 계획입니다. https://blogs.msdn.microsoft.com/sqlnativeclient/2018/03/30/released-microsoft-ole-db-driver-for-sql-server/
요약
미래형 드라이버를 사용해 보십시오.
- ODBC - https://learn.microsoft.com/en-us/sql/connect/odbc/bug-fixes
- OLEDB - https://learn.microsoft.com/en-us/sql/connect/oledb/release-notes-for-oledb-driver-for-sql-server
SQL Server 네이티브 클라이언트 대ODBC용 NET Framework 데이터 공급자
SQL Server Native Client의 마지막 버전인 Microsoft® SQL Server® 2012 Native Client는 SQL Server Native Client 11.0으로도 명명된 것 같습니다.SQL Server 2014 이상에서 새로운 기능을 지원하지 않음
SNAC 11은 SQL Server 2012의 일부로 사용할 수 없었던 SQL Server 2014 및 SQL Server 2016과 함께 릴리스된 기능(예: 투명 네트워크 IP 확인, 항상 암호화됨, Azure AD 인증, 대량 복사 및 테이블 값 매개 변수)을 지원하지 않습니다.
https://blogs.msdn.microsoft.com/sqlreleaseservices/snac-lifecycle-explained/
SQL Server 2014 이상에서 새 기능을 사용하려면 SQL Server용 Microsoft® ODBC 드라이버 11 또는 13을 사용해야 합니다.
이 게시물의 앞부분에서 언급했듯이 최신 버전의 ODBC 드라이버(13 이상)를 사용하면 SQL Server 2014, 2016 등에서 사용할 수 있는 고급 기능에 액세스할 수 있습니다.
그러나 ODBC 버전 17 드라이버가 SQL Server 2012를 지원하는지 여부에 대한 Microsoft 게시물이 충돌합니다.
이 링크는 SQL Server 2012용 ODBC 13: SQL Server 드라이버 버전을 사용해야 함을 나타냅니다.
그러나 ODBC 버전 17에 대한 다운로드를 보면 SQL Server 2012 및 이전 버전의 SQL Server에 대한 지원이 표시됩니다.
SQL Server®용 Microsoft® ODBC 드라이버 17 - Windows, Linux 및 MacOS
따라서 ODBC 버전 17 드라이버는 (적어도) 이전 버전의 SQL Server와 역호환됩니다.
이것이 도움이 되길 바랍니다!
존
언급URL : https://stackoverflow.com/questions/39440008/differences-between-drivers-for-odbc-drivers
'programing' 카테고리의 다른 글
도커에서 종속된 하위 이미지 목록을 가져오는 방법은 무엇입니까? (0) | 2023.08.05 |
---|---|
Android Studio, 앱 종료 후 로그캣 청소 (0) | 2023.08.05 |
Spring JPA(Hibernate) Entity Manager와의 연결 풀에 연결이 반환되는 시기는 언제입니까? (0) | 2023.08.05 |
레일에서 Ajax 호출의 성공 또는 실패를 간단히 반환 (0) | 2023.08.05 |
외부 장치에서 로컬로 Laravel 5 앱에 액세스 (0) | 2023.08.05 |