・stored(サーバに蓄えられた) procedure(手続きorプログラム)
・クライアントからSQL文などで要求を毎回送るのではなく、あらかじめサーバ側に一連のProcedure(プログラム)を作成しておく。クライアントからは値だけを送る。

・過去問(H25秋FE午前問28)ではストアドプロシージャに関して、「クライアントサーバシステムにおいて,利用頻度の高い命令群をあらかじめサーバ上のDBMSに用意しておくことによって,データベースアクセスのネットワーク負荷を軽減する仕組み」と述べられています。

効果は「通信回数と通信量の削減」

例えば、退職する社員の日割りの給料計算のために、以下の一連の処理をする場合を考えます。
・人事データベースから、その人の基本給および能力給を抽出
・1か月間の残業日数を集計
・売り上げ額の集計から、成果加算額を積算
・集計した給料をもとに、退職日に応じて日割りの金額を給料データベースに反映
・・・

1.通常のプログラムの場合
サーバクライアント

①SELECT kihon,nouryoku FROM jinji_db ****
②SELECT sum(zangyo) FROM kintai_db ****
②SELECT sum(uriage) FROM uriage_db ****
④UPDATE salary SET ****   
・・・・・             各処理

このように、各処理の回数だけ処理が必要


2.ストアドプロシージャを使った場合
サーバクライアント


ProcedureKyuryo、1023,1218,・・・




プロシージャ名と引数(この場合は、退職する社員の社員番号と退職日)を渡すだけで計算が終わります。クライアントとサーバでやり取りする命令が1回で済みますし、データ量も削減できます。

【関連問題】
SM平成18年問5
SM平成17年問5

H27年秋AP午前
問26 クライアントサーバシステムにおけるストアドプロシージヤに関する記述のうち,適切でないものはどれか。
ア 機密性が高いデータに対する処理を特定のプロシージヤ呼出しに限定することによって,セキュリティを向上させることができる。
イ システム全体に共通な処理をプロシージヤとして格納しておくことによって,処理の標準化を行うことができる。
ウ データベースへのアクセスを細かい単位でプロシージヤ化することによって,処理性能(スループット)を向上させることができる。
エ 複数のSQL文から成る手続を1回の呼出しで実行することによって,クライアントとサーバの間の通信回数を減らすことができる。
【正解】ウ