2017-09-28 13 views
0

私はReaderを実行し、Scalarを実行する目的を知っています。しかし、Execute ReaderはScalarを実行する目的に役立ちます。では、なぜExecute Scalarを使うのですか?それらの間にパフォーマンスの違いはありますか? どちらが速いですか?ADO.Net - ReaderとExecute Scalarのパフォーマンスの差

ありがとうございました。

答えて

0

違いはIDbCommandの実装に依存します。 ExecuteScalarExecuteReaderと同じコードを内部的に実行した場合のパフォーマンスは同じです:良い例はSqlCommandです:両方のメソッドが内部でRunExecuteReaderメソッドを呼び出すため、パフォーマンスに違いはありません。

普及しているIDbCommandの実装の多くは、SqlClient(MySqlConnector、NpgSql、Microsoft.Data.Sqlite)と同じ方法で動作しますが、ExecuteScalarのパフォーマンスが向上するADO.NETコネクタを使用する可能性があります。つまり、具体的なクラス(たとえば、SqlCommand)を呼び出すと、ExecuteReaderまたはExecuteScalarのいずれかを使用できます。 IDbCommandインタフェース(再利用可能なライブラリなど)を使用していて、ExecuteScalarの実装の使用方法について何も知らない場合、特に最適化された実装を持つコネクタで使用すると、パフォーマンス上のメリットが得られる可能性があります。

関連する問題