ストアドプロシージャとは?
すとあどぷろしーじゃー
ストアドプロシージャとは、データベースサーバー側にあらかじめ保存しておく一連のSQL処理をまとめたプログラムです。
ストアドプロシージャ(Stored Procedure)とは、データベースサーバー内に名前を付けて保存しておける、一連のSQL文や制御構文からなるプログラム単位です。アプリケーションから名前を呼び出すだけで、あらかじめ定義した処理を実行できます。
ストアドプロシージャには次のような特徴があります。
- ネットワーク往復の削減:複数のSQL文をサーバー側でまとめて実行するため、クライアントとのやり取り回数が減る
- 事前コンパイル:初回実行時に解析・最適化されたプランがキャッシュされ、繰り返し呼び出しが高速になる
- セキュリティ向上:テーブルへの直接アクセス権を与えずプロシージャ経由のみにすることで、操作を限定できる
- ロジックの集中管理:ビジネスロジックをDB側に集約し、複数アプリから共通利用できる
MySQLやPostgreSQL、SQL ServerなどほぼすべてのRDBMSがストアドプロシージャをサポートしています。記述言語はデータベースによって異なり、MySQLではBEGIN~ENDブロック、PostgreSQLではPL/pgSQLなどが使われます。
一方で、ストアドプロシージャをアプリケーションのビジネスロジックの主体として使いすぎると、バージョン管理やテストが難しくなるという課題もあります。適切な粒度での利用が推奨されています。
使い方・例文
月次の売上集計や複数テーブルにまたがる在庫更新など、毎回同じ手順を繰り返す処理をストアドプロシージャとして定義しておくと、アプリケーション側からは一行の呼び出しで済み、処理の一貫性が保たれます。
この用語をシェア
最終更新: