IDatareader を実装するリーダーよりも SQLDataReader を使用する利点は何ですか?

StackOverflow https://stackoverflow.com/questions/1574975

  •  21-09-2019
  •  | 
  •  

質問

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

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

これについて説明した記事があれば幸いです。

ありがとう!

クリス

役に立ちましたか?

解決

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

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

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

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

他のヒント

.HasRowsプロパティは、私は考えることができる唯一のものです。 それは本当に必要というわけではないのです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top