1. ストアドプロシージャとは?
ストアドプロシージャとは、「データベースにあらかじめ登録しておける、一連の処理(プログラム)」 のことです。
💡 わかりやすく言うと
- 普通は SQL をその都度書いて実行します(例:
SELECT ...
やUPDATE ...
) - でも、よく使う複雑な処理や、複数の SQL を組み合わせた処理を まとめて名前を付けて保存 しておくことができます
- その保存した処理を呼び出すと、登録した SQL のかたまりが一気に実行されます
👉 つまりストアドプロシージャは、
「データベースに保存して呼び出せるプログラム」=「SQLの便利なレシピ帳」
2. ✅ メリット
- 再利用できる:よく使う処理を一度作れば何度でも呼べる
- コードの冗長性削減:アプリ側で長いSQLを書かずに済む
- パフォーマンス向上:事前にコンパイルされるため高速なことが多い
-
セキュリティ強化:アプリ側からは
CALL プロシージャ名
だけで済む - 保守性が高い:処理のロジックをDBに集約できる
3. ✅ デメリット
- 移植性が低い:DBごとに書き方が違う(Oracle, MySQL, SQL Server などで互換性がない)
- 負荷がDBに集中:大量の処理をDBでやると、DBサーバーがボトルネックになりやすい
4. 📝 まとめ
- ストアドプロシージャは、「データベースに保存して呼び出せる処理のまとまり」
- 普通の SQL を一つずつ発行する代わりに、よく使う複雑な処理や複数の SQL を 名前を付けて登録 しておき、
CALL プロシージャ名
でまとめて実行できる