ODBC驱动程序的驱动程序之间的差异

Jas*_*son 27 sql-server odbc dsn

我在SQL Server 2016中使用Windows 10 64位专业版为我的数据库设置了系统DSN(64位).当我被要求选择驱动程序来设置数据源时,有以下选择:

  • 用于SQL Server的ODBC驱动程序13
  • SQL Server
  • SQL Server Native Client 11.0
  • SQL Server Native Client RDA 11.0

我似乎可以使用所有这些驱动程序设置数据源.那么我应该在速度和效率方面选择哪一个?他们之间有什么区别?

谢谢,

贾森

M.H*_*san 31

用于SQL Server的ODBC驱动程序

ODBC是用C,C++,PHP,Python等编写的用于连接SQL Server的应用程序的主要本机数据访问API.

它广泛用于数据集成场景.

此外,如果您在Windows上开发应用程序并将其部署到Linux,则首选.

SQL Server

SQL Server驱动程序的全名是SQL Server ODBC Driver.它是自sql 2000以来的旧驱动程序.您可以使用它连接到SQL Server 2016,但您将无法访问SQL Server 2016的新功能

SQL Server Native Client

SQL Server Native Client包含SQL OLE DB提供程序和SQL ODBC驱动程序,以支持到SQL Server的本机连接并支持sql server 2016的所有功能.它是Windows环境中最好的

SQL Server Native Client RDA

Microsoft SQL Server Compact 3.5中的远程数据访问(RDA)允许应用程序从远程SQL Server数据库表访问数据.

它还可以在SQL Server Compact 3.5中存储,读取和更新该数据,然后更新原始SQL Server表.

RDA将在未来版本中删除,因此请避免使用它.

所以根据上面的标准选择sql驱动程序.

  • @ M.Hassan,"用于SQL Server的ODBC驱动程序13"是SQL Server的最新Microsoft ODBC驱动程序.自SQL 2012发行版以来,SQL Server Native Client 2012 ODBC驱动程序未发生更改. (3认同)

Kev*_*oid 6

用于SQL Server的Microsoft ODBC驱动程序(MSODBCSQL)

该驱动程序于2013发布,是SQL Server Native Client的后继产品。它与最新的SQL Server版本一起安装(2016和2017年为13)。也有独立的安装程序Microsoft SQL Server的驱动程序历史记录建议此驱动程序优先于ODBC的“ SQL Server”和“ SQL Server Native Client”。在“ SQL Server Native Client”上添加了功能:支持驱动程序的连接池,连接弹性和异步执行(轮询)。您可以在Microsoft ODBC Driver for SQL Server Team博客上关注当前开发。

Driver={ODBC Driver XX for SQL Server}XX有关已安装的版本。请参阅系统要求,安装和驱动程序文件。)

SQL Server本机客户端(SQLNCLI)

与SQL Server 2005一起引入并随SQL Server一起提供(也可以通过sqlncli.msiSQL Server功能包安装)。在“ SQL Server”上增加了功能:多个活动结果集(MARS),用户定义的数据类型(UDT),查询通知,快照隔离和XML数据类型支持。

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 Server Compact的一项功能,它“允许应用程序从远程SQL Server数据库表访问数据”。我找不到太多的文档,但是看来该驱动程序旨在支持Compact Edition的复制方案。

SQL Server(SQLSRV32)

包含在Microsoft数据访问组件(MDAC)(现称为Windows数据访问组件(WDAC))中。默认情况下,此驱动程序在Windows上可用(从98和NT 4.0开始)。

Driver={SQL Server}


Ber*_*ard 5

要检查您安装了哪些驱动程序,请启动一个 powershell(32/64 位 - 取决于您要使用的驱动程序架构)并运行

有机发光二极管

(New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
Run Code Online (Sandbox Code Playgroud)

ODBC

Get-OdbcDriver | select Name,Platform
Run Code Online (Sandbox Code Playgroud)

概述

https://docs.microsoft.com/en-us/sql/connect/connect-history#odbc

SQL Server 有三代不同的 Microsoft ODBC 驱动程序。

  • 第一个“SQL Server”ODBC 驱动程序仍作为 Windows 数据访问组件的一部分提供。这是不推荐使用此驱动程序进行新的开发。
  • 从 SQL Server 2005 开始,SQL“Server Native Client 10.x/11.x/12.x”包含一个 ODBC 接口,是 SQL Server 2005 到 SQL Server 2012 随附的 ODBC 驱动程序。不建议使用这种新发展的驱动力。
  • 在 SQL Server 2012 之后,用于 SQL Server 的 Microsoft ODBC 驱动程序是更新了最新服务器功能的驱动程序。

数据库服务器

这是 MDAC 包 ( https://support.microsoft.com/en-us/help/899456 ) 中的旧版本,现在(自 XP/2003 起)随 Windows-OS 一起提供。 https://docs.microsoft.com/en-us/sql/connect/connect-history#mdacwdac-releases

https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/updating-an-application-to-sql-server-native-client-from-mdac

...从 Windows Vista 开始,数据访问组件现在称为 Windows 数据访问组件,或 Windows DAC)。尽管两者都提供对 SQL Server 数据库的本机数据访问,但 SQL Server Native Client专门设计用于公开 SQL Server 2005 (9.x)的新功能,同时保持与早期版本的向后兼容性。


SQL Server 本机客户端

https://docs.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 数据访问组件不会针对 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://docs.microsoft.com/en-us/sql/connect/connect-history#odbc

在 SQL Server 2012 之后,SQL Server的主要 ODBC 驱动程序已经开发并发布为 Microsoft ODBC Driver for SQL Server。


MSOLEDBSQL - 用于 SQL Server 的 Microsoft OLE DB 驱动程序

该驱动程序已经过时,后来undeprecated

https://docs.microsoft.com/en-us/sql/connect/oledb/oledb-driver-for-sql-server#3-microsoft-ole-db-driver-for-sql-server-msoledbsql

新的 OLE DB 提供程序称为 Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)。新的提供程序将使用最新的服务器功能进行更新。要在现有应用程序中使用新的 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/


概括

尝试使用面向未来的驱动程序: