26

一般的な質問:

特定のクエリを実行するときにキャッシュを使用しないように SQL Server に渡すことができるクエリ/コマンドはありますか?

構成設定ではなく、設定できるクエリ/コマンドを探しています。これを行う必要はありませんか?

4

4 に答える 4

26
DBCC FREEPROCCACHE

キャッシュされたプロシージャの実行計画をすべて削除します。これにより、後続のすべてのプロシージャ コールが再コンパイルされます。

プロシージャ定義に追加WITH RECOMPILEすると、呼び出されるたびにプロシージャが再コンパイルされます。

(SQL 2005 以前では) 単一のプロシージャ実行プランのプロシージャ キャッシュをクリアする方法があるとは思いませんし、2008 年にもそれができるとは思えません。

于 2009-12-06T23:33:50.743 に答える
24

クエリでデータ キャッシュを使用しないようにする場合、最適な方法は、クエリを実行する前にキャッシュをクリアすることです。

CHECKPOINT
DBCC DROPCLEANBUFFERS

再コンパイルを強制しても、クエリによるデータ キャッシュの使用には影響しないことに注意してください。

個々のクエリをマークしてキャッシュを回避できない理由の 1 つは、キャッシュの使用がクエリの実行に不可欠な部分であることです。データが既にキャッシュにある場合、2 回目の読み取りが行われた場合、SQL Server はそのデータをどう処理するでしょうか? 同期の問題などは言うまでもありません。

于 2009-12-07T07:52:02.677 に答える
1

使用する

WITH RECOMPILE
于 2009-12-06T23:19:52.107 に答える