.net - OleDB 与 SQLClient 相比有何优缺点?

标签 .net sql-server-2005 oledb

一些背景信息:我正在开发的系统之一是 .net 2.0 Web 应用程序。前端使用VB.net,后端使用SQL Server 2005。由于各种已被时间遗忘的原因,最初的设计者决定使用.Net OleDB 连接而不是 SQLClient 连接。

经过几年的发展,这个特殊的系统即将从“beta”过渡到“1.0”状态。我们目前讨论的一件事是转向 SQLClient 连接。虽然我知道使用它是最佳实践,并且它是获得 SQL Server 2005 中更高级功能的唯一方法(显然我们没有使用它),但使用它比使用它有什么优势?其他?有什么我应该知道的隐藏问题吗?谁能给我指出一些显示相对速度的基准? (我听说 SQLClient 应该更快,但我从未见过任何数字来支持这一点。)

谢谢大家。

最佳答案

OleDb 更通用。如果您将来迁移到不同的数据库类型,它很可能会有 Ole 驱动程序,并且您不必更改那么多代码。

另一方面,正如您所说,Sql Server native 驱动程序应该更快,并且具有更好的参数支持(参数可以使用名称,并且必须按顺序排列) .

根据我个人的经验,我从未注意到速度差异;我也找不到任何东西来支持这一说法。我怀疑性能优势是真实的,但您必须处理数百万条记录才能开始测量它。

我确实注意到错误消息产生了有意义的变化。我在使用旧的 OleDb 应用程序时遇到了问题,出于绝望,我将其切换到 SqlClient。当然,它仍然不起作用,但是更好的错误消息提供了足够的新信息,我能够解决问题。

关于.net - OleDB 与 SQLClient 相比有何优缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/473932/

相关文章:

.net - 在 WPF 中拉伸(stretch)控件以填充 ListView 列

c# - 在.NET Core应用程序中可靠地终止通过cmd进程启动的node.js进程

visual-studio - 扩展 SSRS 中的图表功能

sql - 找出SQL Server中的调用存储过程

SQL Server 查看主键

c# - 无法通过 OleDb 读取大小超过 ~1mb 的 xlsx 文件

.net - 如何使用LINQ to Entity选择递归嵌套实体

.net - NHibernate:投影和引用类型属性

c# - 在 C# 中为每个不同行运行 ExecuteNonQuery

azure - Azure 应用服务下的 ODBC 或 OleDB 数据库驱动程序