【问题标题】:SQL Server: Native client vs. ODBC?SQL Server:本机客户端与 ODBC?
【发布时间】:2011-07-17 15:18:11
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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。

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      嗯? ODBC 正式死了?有人可能想让 Microsoft 知道:

      Microsoft is Aligning with ODBC for Native Relational Data Access

      来自以上链接:

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

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

      最后,

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

      (强调)

      【讨论】:

      【解决方案4】:

      当底层数据库可能发生变化但您不希望代码发生变化时(假设 SQL 在不同技术中保持不变),ODBC 非常有用。您可以在某一天连接到 Oracle 数据库,然后再切换到 SQL Server 数据库。缺点是您没有获得特定驱动程序为您提供的优化。 SQL Server Native 客户端驱动程序已被证明比仅使用标准 ODBC 驱动程序要快得多。

      【讨论】:

      • -1。实际上是错误的。 ODBC 已死。你所说的只是......这些天你用 OLEDB 做什么,而不是 ODBC。
      • 你是对的。我不喜欢把这些混在一起。很抱歉造成混乱。
      • “事实证明,SQL Server Native 客户端驱动程序比仅使用标准 ODBC 驱动程序要快得多。”真的吗?我只是在我们切换之前进行测试。当我像 Driver={SQL Server};调用相同过程的大量(超过 20 倍)比 Driver={SQL Server Native Client 10.0};
      • @TomTom 错误……证明? Acc. to Wikipedia 在您撰写评论时,最新版本只有 2 岁。一年前开始在 Github 上开发下一个版本。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多