IDatareader を実装するリーダーよりも SQLDataReader を使用する利点は何ですか?
-
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プロパティは、私は考えることができる唯一のものです。 それは本当に必要というわけではないのです。