応用情報技術者 2015年 秋期 午前2 問26
問題文
クライアントサーバシステムにおけるストアドプロシージャに関する記述のうち、適切でないものはどれか。
選択肢
ア:機密性が高いデータに対する処理を特定のプロシージャ呼出しに限定することによって、セキュリティを向上させることができる。
イ:システム全体に共通な処理をプロシージャとして格納しておくことによって、処理の標準化を行うことができる。
ウ:データベースへのアクセスを細かい単位でプロシージャ化することによって、処理性能 (スループット) を向上させることができる。(正解)
エ:複数の SQL 文から成る手続を1回の呼出しで実行することによって、クライアントとサーバの間の通信回数を減らすことができる。
クライアントサーバシステムにおけるストアドプロシージャに関する問題【午前2 解説】
要点まとめ
- 結論:ストアドプロシージャは通信回数削減やセキュリティ向上に有効だが、細かすぎる単位での利用は性能向上に直結しない。
- 根拠:複数SQLをまとめて実行し通信負荷を減らすことや、共通処理の標準化が主な利点であるため、細分化は逆効果になる場合がある。
- 差がつくポイント:性能向上の理由を正しく理解し、細かい単位でのプロシージャ化が必ずしもスループット向上に繋がらない点を押さえること。
正解の理由
ウは「細かい単位でプロシージャ化することで処理性能(スループット)が向上する」と述べていますが、これは誤りです。ストアドプロシージャは複数のSQL文をまとめてサーバ側で処理し、通信回数を減らすことで性能向上を図ります。細かく分割しすぎると呼び出し回数が増え、かえって通信負荷が増大し性能低下を招く可能性があります。
よくある誤解
ストアドプロシージャは「細かく分ければ分けるほど性能が良くなる」と誤解されがちですが、通信回数の増加により逆効果になることがあります。
解法ステップ
- ストアドプロシージャの基本的な役割を理解する(通信回数削減、処理の標準化、セキュリティ強化)。
- 各選択肢の内容がこれらの役割に合致しているかを検証する。
- 「細かい単位でのプロシージャ化」が性能向上に直結しないことを知識として確認する。
- 適切でない選択肢を特定し、正解とする。
選択肢別の誤答解説
- ア:機密性の高い処理を限定することでセキュリティ向上は正しい。
- イ:共通処理の標準化は保守性向上に寄与し正しい。
- ウ:細かい単位でのプロシージャ化は通信回数増加を招き性能低下の恐れがあるため誤り。
- エ:複数SQLをまとめて1回の呼び出しで実行し通信回数を減らすことは性能向上に繋がり正しい。
補足コラム
ストアドプロシージャはサーバ側で実行されるため、クライアントとサーバ間の通信回数を減らすことが最大のメリットです。これによりネットワーク遅延を抑え、全体の処理効率を高めます。また、権限管理をプロシージャ単位で行うことでセキュリティ強化も可能です。
FAQ
Q: ストアドプロシージャはなぜ通信回数削減に効果的ですか?
A: 複数のSQL文をまとめてサーバ側で処理するため、クライアントからの呼び出し回数が減りネットワーク負荷が軽減されるからです。
A: 複数のSQL文をまとめてサーバ側で処理するため、クライアントからの呼び出し回数が減りネットワーク負荷が軽減されるからです。
Q: 細かい単位でプロシージャを作ると何が問題ですか?
A: 呼び出し回数が増え通信回数が増大し、かえって性能が低下する可能性があります。
A: 呼び出し回数が増え通信回数が増大し、かえって性能が低下する可能性があります。
関連キーワード: ストアドプロシージャ、クライアントサーバ、通信回数削減、セキュリティ、処理性能

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

