1

SQL Server >= 2005 を使用している場合、IDatareader を実装するだけのリーダーとは対照的に、SQLDataReader を使用する利点は何ですか?

SQLDatareader には選択できる機能が増えているだけですか、それとも SQLDatareader を使用するとパフォーマンスが向上しますか?

これについて説明している記事を歓迎します。

ありがとう!

クリス

4

2 に答える 2

3

まず最初に、誤解を訂正させてください。SQL Server を使用している場合、すべての IDataReader が MS SQL Server からデータを読み取ることができるわけではありません。

.NET 環境 (あなたの質問が当てはまると思います) には、SQL Server にアクセスできる IDataReader を実装する 2 つの具体的なクラスがあります。1 つは SQLDataReader で、もう 1 つは OleDbDataReader です。OleDbDataReader は実際には、基本的に RDBMS 通信プロトコルであるOleDb プロトコルに依存しています。

コードで IDataReader を使用すると、(多かれ少なかれ) その背後にある具体的なデータリーダーを確実に置き換えることができます (たとえば、データベース ベンダーを切り替えることができます。成功した人を私は知りません)。

SQL Server にアクセスする場合、専用の SQLDataReaderは、このソースによると 115% 高速です。これは、ネイティブの SQL サーバー プロトコル (pipes/tcp/ip という名前) を使用するためです。また、MARS などの特別な SQL Server 機能もサポートしています。

于 2009-10-15T20:59:50.090 に答える
0

.HasRows プロパティは、私が考えることができる唯一のものです。しかし、それは本当に必要ではありません。

于 2009-10-15T20:59:17.973 に答える