2011-07-07 4 views

答えて

6

これは厳密にはSQL Server内の操作です。データベースは、インデックスを追加するか、インデックス付きの列のデータを変更するなどの行為によって変更されると、そのテーブルにアクセスするために使用された元の問い合わせ計画は彼らに

を再コンパイルすることによって、再び最適化する必要があります

はここMSDN's article on Recompiling Stored Procedures

です

ALTER PROCステートメントを発行すると、ストアドプロシージャも再コンパイルされます。

+1

Downvoterには、私の回答が利益と価値をどのように提供してくれないかについての説明がありますか? –

2

再コンパイルを使用すると、SQL ServerがSPに再コンパイルされるため、同じSPに対して既存のプランを使用する代わりに、データベースエンジンによって新しい実行計画が作成されます。

要件に応じて、自動化プロセスと手動プロセスの両方が可能です。 SPにRECOMPILEの "ヒント"を含めることで、実行されるたびにSPを再コンパイルすることができます。または手動で再コンパイルする

ExecのSP_RECOMPILE N'yourSP」

を実行します。

@Michaelが述べたように、各コンパイルデータベースエンジンが高価な操作である可能性のある新しい実行計画を作成する必要があるため、あまりにも多くの再コンパイルは非常に悪いことがあります。だから、一般的にSPの自動再コンパイルは避けなければなりません。また、手動で再コンパイルしても、開発環境で最初にテストして、実際にそれが本当に役立つかどうかを確認する必要があります。

関連する問題