SQL Server のストアドプロシージャ
SQL Server のストアド プロシージャ
「 SQL Server のユーザー定義関数 」 では、SQL Server のユーザー定義関数を作成し使ってみました。
次は SQL Server のストアドプロシージャについてみていきましょう。
ストアドプロシージャとは
ストアードプロシージャでは、複雑な一連の処理をひとまとめにしたものです。
インプットパラメタを受け取って一連の処理を行い、アウトプットパラメタとして値を返したり、また、ひとつ以上のテーブル結果セットを返すことも可能です。
ユーザー定義関数ではスコープ外のリソースを変更することができませんでしたが、ストアドプロシージャからはスコープ外のリソースを変更可能なので、テーブルの値を挿入・更新・削除したり、一時テーブルを作ったりすることもできます。
ストアドプロシージャの種類には、ユーザー定義、システム、拡張ユーザー定義がありますが、ここではユーザー定義のストアドプロシージャについてとりあげます。
ストアドプロシージャを使う利点としては、セキュリティーの強化や、機能をモジュール化できることや、プランがキャッシュ・再利用されるのでコンパイルにかかる時間が削減され実行時間が速くなることなどがあげられます。
データベースシステムの開発の際には、アドホッククエリをクライアントプログラムに書いてしまうと、後で変更があった際に影響範囲や変更箇所の特定が大変です。
私は、データベース側で必要な処理はストアドプロシージャで行い、クライアントプログラムからはストアドプロシージャを呼ぶような形にするのが、パフォーマンスやメンテナンスの観点からも良いのではないかと思います。