あなたが実行しなければならない「ベストプラクティス」があります
DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS
SQL クエリでパフォーマンス分析を行う前。
ただし、たとえば、後者の DROPCLEANBUFFERS:
サーバーをシャットダウンして再起動せずに、DBCC DROPCLEANBUFFERS を使用して、コールド バッファー キャッシュでクエリをテストします。
バッファー プールからクリーン バッファーを削除するには、まず CHECKPOINT を使用してコールド バッファー キャッシュを作成します。これにより、現在のデータベースのすべてのダーティ ページが強制的にディスクに書き込まれ、バッファが消去されます。これを行った後、DBCC DROPCLEANBUFFERS コマンドを発行して、バッファー プールからすべてのバッファーを削除できます。
これは、サーバーで実行された最初のクエリであるかのようにクエリをテストすることを意味すると思います。したがって、クエリの実際の「実際の」影響は低くなります。
クエリのコストを知るために 3 つのコマンドを実行することは本当にお勧めですか、それとも実際の環境での実際のクエリ時間とは密接な関係のないかなり経験的な結果が得られるのでしょうか?