2009-11-03 28 views

答えて

48

..........

sp_recompile意志「マーク」、それが実行される次回に発生する再コンパイルのために指定されたストアドプロシージャを実行します。

オプションWITH RECOMPILEを使用すると、指定されたストアドプロシージャが実行されるたびに新しい実行計画が生成されます。

DBCC FREEPROCCACHE 
+0

それは私が探していたもので、キャッシュをクリアしています!ありがとう! – Brandon

+0

DBCC FREEPROCCACHEは特定のプロシージャのためだけに実行できますか? – CodeMilian

+0

@CodeMilan:はい、プラン/プロシージャ・キャッシュから特定のplan_handle(たとえば、特定のストアド・プロシージャの問合せプラン)を削除できます。例については、BOLを参照してください。http://msdn.microsoft.com/en-us/library/ms174283.aspx –

5

ストアドプロシージャの場合は、WITH RECOMPILEオプションを使用します。

+0

1 AHAを実行する手順全体のキャッシュをクリアするには

!!今、物事は意味をなさないようになります:-)あなたは不明瞭なユーザメッセージを解読するのが得意です。私は見る必要があります... –

+1

このメソッドは、実行されるたびに与えられたストアドプロシージャを再コンパイルするので注意してください。強制的に再コンパイルし、システムストアドプロシージャsp_recompileを使用します。 –

1

sp_recompileは、既存のクエリプランをダンプし、プロシージャを再コンパイルします。 または、SQLを再起動すると、実行計画キャッシュ全体がクリアされます。

WITH RECOMPILEは、実行するたびに新しいプランを生成します。

+7

小さくても重要な違いは、sp_recompileを実行すると、指定されたストアドプロシージャは再コンパイルされず、次に実行されるときに再コンパイル用にマークされます。 –

4

ストアドプロシージャのための量的緩和政策をリセットしたい場合は、それはあなたが後にしているものをあなたの質問から完全には明らかではありませんsp_recompile

3

を使用しなければなりません。しかし、他の提案に加えて、DBCC FREEPROCCACHEは、キャッシュされた実行計画をすべてクリアします。明確にするために

関連する問題