如果我使用 SQL Server >= 2005,那么使用 SQLDataReader 与仅实现 IDatareader 的读取器相比有哪些优势?

SQLDatareader 是否只是有更多功能可供选择,或者使用 SQLDatareader 是否可以提高性能?

任何讨论此问题的文章将不胜感激。

谢谢!

克里斯

有帮助吗?

解决方案

首先纠正一下大家的误解:如果您使用的是 SQL Server,则并非每个 IDataReader 都能够从 MS SQL Server 读取数据

在 .NET 环境(我假设您的问题适用)中,有两个实现 IDataReader 的具体类可以访问 SQL Server。一种是 SQLDataReader,另一种是 OleDbDataReader。OleDbDataReader 实际上依赖于 OleDb协议, ,它基本上是一个 RDBMS 通信协议。

在代码中使用 IDataReader 将(或多或少)确保您可以替换其背后的具体数据读取器(例如让您能够切换数据库供应商。我不知道有谁成功做到了这一点)。

为了访问 SQL Server,专门的 SQLDataReader 据此快了 115% 来源, ,因为它使用本机 sql server 协议(命名管道/tcp/ip)。它还支持特殊的 SQL Server 功能,例如 MARS。

其他提示

.HasRows属性是唯一一个我能想到的。 这是不是真的有必要,但。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top