ストアドプロシージャとは?ストアドプロシージャ
ストアドプロシージャとは、一連のSQL文と制御構造をデータベースサーバ側に登録しておき、名前と引数で呼び出せるようにしたもの。構文解析と実行計画の作成が登録時に済み、複数のSQLを1回の呼出しにまとめられるため、クライアントとサーバの往復が大きく減る。
最終更新:2026-10-06
この語が出る過去問を解く →背景
クライアントサーバ構成では、1文ごとに要求と応答が往復する。10文で終わる業務処理でも往復は10回になり、処理時間の大半がネットワーク待ちで占められる。加えて、同じ業務ロジックが複数のアプリケーションに複製されると改修漏れが起きる。処理をサーバ側の名前付きの単位にまとめることで、往復とロジックの重複を同時に減らせる。
具体例
Oracle DatabaseのPL/SQLやSQL Serverのストアドプロシージャで、在庫確認・引当て・受注明細登録をひとまとめにする。アプリケーションからは1回呼ぶだけで済み、中間結果を持ち帰る必要もない。
試験での引っ掛け
性能上の効き目は往復の削減が主なので、細かく分割して何度も呼べば往復が戻り効果は消える。またロジックがDBMSに寄るほど構文が製品固有になり、移行やバージョン管理の負担が増える点も判断材料になる。
関連用語
出た過去問
出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問2(IPA)
クライアントサーバシステムにおけるストアドプロシージャに関する記述のうち、適切でないものはどれか。
正解:データベースへのアクセスを細かい単位でプロシージャ化することによって、処理性能(スループット)を向上させることができる。
要点:ストアドの性能効果は往復削減、細分化は逆効果
設問は不適切なものを選ぶ形式である。ストアドプロシージャの性能上の利点は、複数のSQL文をサーバ側でまとめて実行し、クライアントとの往復回数を減らせる点にある。逆にアクセスを細かい単位に分けてプロシージャ化すると呼出し回数そのものが増え、通信回数もオーバヘッドも増えてスループットは落ちる。したがって性能向上の理由付けとしては成り立たない。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。