IT用語
(
ひよぺん
)
Home
コラム
用語集
About
検索
Ctrl K
Esc
見つかりませんでした
調べたいIT用語を入力してね
ストアドプロシージャ
すとあどぷろしーじゃ
データベース
用語集
› 🗄️ データベース › ストアドプロシージャ
【すとあどぷろしーじゃ】
ストアドプロシージャ とは?
最終更新:
2026年3月24日
💡 DBサーバーに「保存された処理手順」
📌 このページのポイント
SQL
文の集合をDB
サーバー
側に保存して呼び出す
事前コンパイル・
実行計画
キャッシュ
で高速
ネットワーク
通信の削減(1回の呼び出しで複数
SQL
実行)
ビジネスロジックがDB側に集中するとメンテナンスが困難になる
アプリケーション
// 注文処理
EXEC
PlaceOrder
@userId=1
@itemId=42
アプリ側
名前を呼ぶだけ
呼び出し
データベース内部
PlaceOrder(保存済みSQL)
① 在庫確認 SELECT stock FROM items
② 在庫を減らす UPDATE items SET stock...
③ 注文を記録 INSERT INTO orders...
④ 決済処理 UPDATE payments...
⑤ 完了を返す RETURN '完了'
DB側で一括実行
アプリは名前を呼ぶだけ。複雑な処理はDB内のストアドが担う
アプリはプロシージャ名を呼ぶだけで、複数のSQL処理をデータベース内部で一括実行できる
ひよこ
アプリ側で
SQL
書くのと何が違うの?
ペンギン先生
アプリ側の
SQL
はリクエストごとに
パース
→最適化→実行される。ストアドプロシージャは初回だけ
コンパイル
され、以降は
キャッシュ
された
実行計画
を使う。また複数の
SQL
をDB側でまとめて実行するから、アプリ↔DB間の
ネットワーク
往復が減る。大量データの一括処理では特に差が出るよ
ひよこ
デメリットは?
ペンギン先生
①
デバッグ
が困難(アプリ側のデバッガが使えない)、②
バージョン管理
が面倒(DDL文として
Git
管理するか、マイグレーションツールが必要)、③DB固有の
SQL
方言に依存(
MySQL
と
PostgreSQL
で書き方が違う)、④テストが書きにくい。最近は
ORM
の発達でストアドプロシージャの利用は減少傾向だよ
ひよこ
今でも使うべき場面は?
ペンギン先生
①大量データの一括処理(夜間バッチ等)、②
セキュリティ
(
テーブル
への直接アクセスを禁止して
プロシージャ
経由のみにする)、③
レガシーシステム
の保守、④DB間のデータ連携。新規開発ではアプリ側にロジックを持つのが主流だけど、パフォーマンスクリティカルな処理にはまだ出番があるよ
ひよこ
IPA試験でのポイントは?
ペンギン先生
「ストアドプロシージャのメリットを3つ挙げよ」→①事前
コンパイル
による高速実行、②ネットワークトラフィックの削減、③
セキュリティ
(直接テーブルアクセス不要)。
トリガー
(特定操作で自動実行される
プロシージャ
)との違いも押さえておこう。
トリガー
はINSERT/UPDATE/DELETEに連動して
自動起動
するよ
まとめ:ざっくりこれだけ覚えればOK!
「ストアドプロシージャ」って出てきたら「DBに保存された再利用可能な
SQL
プログラム
」と思えればだいたいOK!
📖 おまけ:英語の意味
「Stored Procedure」
= 格納された手続き
💬 Stored(保存された)Procedure(手続き)。DBサーバー内に処理を保存しておくよ
🔗 あわせて読みたい
インデックス(データベース) とは?
リレーショナルデータベース とは?
SQL とは?
シェアする
X
URLコピー
← 用語集にもどる