与实现 IDatareader 的读取器相比,使用 SQLDataReader 有何优势?
-
21-09-2019 - |
题
如果我使用 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属性是唯一一个我能想到的。 这是不是真的有必要,但。
不隶属于 StackOverflow