本文へスキップ

ストアドプロシージャとは?

すとあどぷろしーじゃー

ストアドプロシージャとは、データベースサーバー側にあらかじめ保存しておく一連のSQL処理をまとめたプログラムです。

ストアドプロシージャ(Stored Procedure)とは、データベースサーバー内に名前を付けて保存しておける、一連のSQL文や制御構文からなるプログラム単位です。アプリケーションから名前を呼び出すだけで、あらかじめ定義した処理を実行できます。

ストアドプロシージャには次のような特徴があります。

  • ネットワーク往復の削減:複数のSQL文をサーバー側でまとめて実行するため、クライアントとのやり取り回数が減る
  • 事前コンパイル:初回実行時に解析・最適化されたプランがキャッシュされ、繰り返し呼び出しが高速になる
  • セキュリティ向上:テーブルへの直接アクセス権を与えずプロシージャ経由のみにすることで、操作を限定できる
  • ロジックの集中管理:ビジネスロジックをDB側に集約し、複数アプリから共通利用できる

MySQLやPostgreSQL、SQL ServerなどほぼすべてのRDBMSがストアドプロシージャをサポートしています。記述言語はデータベースによって異なり、MySQLではBEGIN~ENDブロック、PostgreSQLではPL/pgSQLなどが使われます。

一方で、ストアドプロシージャをアプリケーションのビジネスロジックの主体として使いすぎると、バージョン管理やテストが難しくなるという課題もあります。適切な粒度での利用が推奨されています。

使い方・例文

月次の売上集計や複数テーブルにまたがる在庫更新など、毎回同じ手順を繰り返す処理をストアドプロシージャとして定義しておくと、アプリケーション側からは一行の呼び出しで済み、処理の一貫性が保たれます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語