ストアド プロシージャとトリガの実行

SQL Server では、ストアド プロシージャとトリガのソースだけが格納されます。ストアド プロシージャまたはトリガを最初に実行するときに、ソースが実行プランにコンパイルされます。時間が経過して実行プランがメモリから削除される前にストアド プロシージャまたはトリガを再度実行すると、リレーショナル エンジンは既存の実行プランを検出してそれを再利用します。時間が経過して実行プランがメモリから削除されると、新しい実行プランが構築されます。これは、SQL Server がすべての SQL ステートメントに行うのと同じ処理です。SQL Server で、動的 SQL のバッチと比較した場合の、ストアド プロシージャやトリガのパフォーマンス上の主な利点は、SQL ステートメントが常に同じであることです。したがって、リレーショナル エンジンを既存の実行プランに容易に適合させることができます。その結果、ストアド プロシージャやトリガのプランを簡単に再利用できます。

ストアド プロシージャとトリガの実行プランは、ストアド プロシージャを呼び出すバッチやトリガを起動するバッチの実行プランとは別に実行されます。このため、ストアド プロシージャやトリガの実行プランを何回でも再利用できます。