sqloledb vs sqlncli - 性能差异还是功能集?

Ano*_*nJr 4 performance sql-server-2005

我最近一直在运行一些经典的 ASP 代码,想知道使用以下方法进行连接是否存在性能差异:

Provider=SQLOLEDB;server=NTSERVERNAME\SQLEXPRESS;database=DBNAME;uid=USER;pwd=PASSWORD;
Run Code Online (Sandbox Code Playgroud)

或者

Provider=SQLNCLI;server=NTSERVERNAME\SQLEXPRESS;database=DBNAME;uid=USER;pwd=PASSWORD;
Run Code Online (Sandbox Code Playgroud)

我似乎记得某些提供程序选项(主要来自 SQL Server 2000 及更早版本)会影响性能,但我无法确定这两个提供程序是否存在这种情况。

我唯一能找到的文章解释了后者将让我使用 SQL Server 2005 中的一些新功能(XML 数据类型等)和一些其他功能支持问题 - 但与性能无关。

San*_*ddy 5

我和 Erland Sommarskog 谈过这件事,这是他的回应。

我参加了一个关于 SQL Native Client 的 PASS 2005 演示。SQL Server 客户端当时的 PM 表示,对于 ODBC,他们已经实现了 20% 的性能改进,但对于 OLE DB,这几乎是平均水平。

但由于 SQLNCLI 提供了更多功能,这可能是要使用的提供程序。再说一次,对于旧的 ADO,许多功能无论如何都不可用。

HTH