応用情報技術者試験 - SE娘の剣 -

応用情報処理技術者試験の対策サイトです。 応用情報処理技術者試験の午前問題を中心とした基礎用語の解説を中心に掲載します。書き始めたばかりなので、内容はまだまだ不十分です。少しずつ追記していきます

ストアドプロシージャ(stored procedure)

・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回の呼出しで実行することによって,クライアントとサーバの間の通信回数を減らすことができる。
【正解】ウ