0

SQL Server にストアド プロシージャがあり、SSMS を使用してデバッグしようとしています。これが私のプロセスです:

  1. ストアド プロシージャを変更して実行する
  2. ストアド プロシージャをデバッグ モードで実行して、変更の影響を確認します。これにより、SSMS でデバッグ用の新しいタブが開きます。
  3. デバッグ セッションを終了し、ストアド プロシージャを変更して再実行します。

手順 2 で作成したタブを閉じないと、デバッガーは以前のバージョンのストアド プロシージャを使用しているように見えます。これは SSMS でのデバッグに関する既知の問題ですか? その場合、回避策または修正方法はありますか?

4

1 に答える 1

2

解決:

'DBCC FREEPROCCACHE' を使用して、プロシージャ キャッシュをクリアします。

プロシージャ キャッシュを解放すると、たとえば、アドホック SQL ステートメントがキャッシュから再利用されるのではなく、再コンパイルされます。SQL プロファイラーを使用して監視すると、DBCC FREEPROCCACHE が動作するときにキャッシュ削除イベントが発生するのを確認できます。DBCC FREEPROCCACHE は、オプティマイザーがメモリにキャッシュしたすべてのストアド プロシージャ プランを無効にし、それらのプロシージャが次に実行されるときに SQL Server に新しいプランを強制的にコンパイルさせます。

-- すべての功績 --> Dave Pinal on Cache それ以外の場合は、

ドロップ プロシージャ stpMyModifiedProcedure

プロシージャ stpMyModifiedProcedure の作成

これも機能します...変更するとsprocが変更されますが、キャッシュにはありません...ドロップリングはキャッシュを更新します。

于 2015-02-06T18:01:25.617 に答える