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