クエリのパフォーマンスを測定すると、分離レベルと経過時間の間に驚くべき依存関係があることがわかりました。
READUNCOMMITTED - 409024
READCOMMITTED - 368021
REPEATABLEREAD - 358019
SERIALIZABLE - 348019
左の列はテーブル ヒントで、右の列はマイクロ秒単位の経過時間 (sys.dm_exec_query_stats.total_elapsed_time) です。分離レベルを高くするとパフォーマンスが向上するのはなぜですか? これは開発マシンであり、並行性はまったく発生しません。ロックのオーバーヘッドが少ないため、READUNCOMMITTEDが高速になると思います。
更新:これを測定しました
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
プロファイラーは、キャッシュ ヒットが発生していないことを確認します。