SQL Server:本机客户端与ODBC?

时间:2011-03-17 18:20:13

标签: sql-server sql-server-2005 sql-server-2008 odbc database-connection

SQL Server Native Client连接和ODBC连接有什么区别?这两者的优点和缺点是什么?

4 个答案:

答案 0 :(得分:18)

咦? ODBC正式死了吗?有人可能想让微软知道:

Microsoft is Aligning with ODBC for Native Relational Data Access

从以上链接:

  

ODBC是本机关系数据访问的事实上的行业标准......

  

Microsoft SQL Server的商业版本,代号为“Denali”,将是支持OLE DB的 最新版本

最后,

  

“我们鼓励您在开发应用程序的新版本和未来版本时采用ODBC。您无需使用OLE DB更改现有应用程序,因为它们将继续使用Denali在其整个生命周期中都支持。虽然这为您在弃用生效之前更改应用程序提供了大量机会,但您可能需要考虑将这些应用程序迁移到ODBC,作为未来路线图的一部分.Microsoft完全致力于使这种转变尽可能顺利和轻松。“”

(强调补充)

答案 1 :(得分:3)

ODBC可用于底层数据库可能发生更改但您不想使用代码的情况(假设SQL在各种技术之间保持不变)。您可以在某天连接到Oracle数据库,然后切换到SQL Server数据库。缺点是您没有获得具有特定驱动程序的优化。事实证明,SQL Server Native客户端驱动程序比仅使用标准ODBC驱动程序要快得多。

答案 2 :(得分:0)

<块引用>

SQL Server Native Client 连接和 ODBC 连接有什么区别?

ODBC 是标准化的 API。

ODBC 驱动程序 是使用本机协议(如 SQL Server 共享内存或 SQL Server TCP/IP)来实现 ODBC 接口的共享库。

换句话说,ODBC 是一种抽象,它使代码能够针对多种数据库技术工作。

它类似于 Java 的 JDBC,或 Python 的 DB-API,或 GO 的 database/sql,只是 ODBC 驱动程序使用 C 函数。此外,它们更频繁地安装在系统级别。


ODBC 具有任何抽象的通常优点和缺点。

  • 优点:使代码更加灵活/便携。

  • 缺点:增加性能开销,功能较少。

听起来您知道您将使用 SQL Server,并且将始终使用 SQL Server。

在这种情况下,如果可用,我会使用本机客户端库。

答案 3 :(得分:-2)

SQL Server Native Client是一个单一的动态链接库(DLL),其中包含Windows的SQL OLE DB提供程序和SQL ODBC驱动程序。

  

SNAC 11是包含两个SQL的单个动态链接库(DLL)   Windows的OLE DB提供程序和SQL ODBC驱动程序。它包含运行时   支持使用本机代码API(ODBC,OLE DB和ADO)的应用程序   连接到Microsoft SQL Server 2005、2008、2008 R2和SQL Server   2012。适用于Linux的单独的仅SQL ODBC驱动程序。

https://blogs.msdn.microsoft.com/sqlreleaseservices/snac-lifecycle-explained/