応用情報技術者 2013年 秋期 午前2 問27
問題文
クライアントサーバシステムにおけるストアドプロシージャに関する記述のうち、誤っているものはどれか。
選択肢
ア:機密性の高いデータに対する処理を特定のプロシージャ呼出しに限定することにより、セキュリティを向上させることができる。
イ:システム全体に共通な処理をプロシージャとして格納しておくことによって、処理の標準化を行うことができる。
ウ:データベースへのアクセスを細かい単位でプロシージャ化することによって、処理性能(スループット)を向上させることができる。(正解)
エ:複数の SQL 文から成る手続を1回の呼出しで実行できるので、 クライアントとサーバの間の通信回数を減らすことができる。
クライアントサーバシステムにおけるストアドプロシージャに関する問題【午前2 解説】
要点まとめ
- 結論:誤っているのは「ウ」の「細かい単位でプロシージャ化すると処理性能が向上する」という記述です。
- 根拠:ストアドプロシージャは複数のSQL文をまとめて実行し通信回数を減らすことで性能向上を図るもので、細かく分けすぎると逆に通信回数が増え性能低下の原因になります。
- 差がつくポイント:ストアドプロシージャの目的は通信回数削減と処理の標準化であり、細分化が必ずしも性能向上に繋がらない点を理解することが重要です。
正解の理由
「ウ」の選択肢は、ストアドプロシージャを細かい単位で作成すると処理性能が向上すると述べていますが、これは誤りです。ストアドプロシージャは複数のSQL文をまとめてサーバ側で処理し、クライアントとサーバ間の通信回数を減らすことで性能を改善します。細かく分割すると通信回数が増え、かえって性能が悪化するため、性能向上にはつながりません。
よくある誤解
ストアドプロシージャを細かく分ければ管理が楽になり性能も上がると誤解しがちですが、通信回数が増えるため性能低下のリスクがあります。
解法ステップ
- ストアドプロシージャの役割を確認する(通信回数削減、処理の標準化、セキュリティ向上)。
- 各選択肢の内容がストアドプロシージャの特徴に合致しているか検証する。
- 「細かい単位でプロシージャ化する」ことが性能向上に繋がるかを考える。
- 通信回数が増えると性能が低下する点を踏まえ、誤りを特定する。
選択肢別の誤答解説
- ア:機密性の高い処理を限定することでセキュリティ向上は正しい。
- イ:共通処理をまとめて標準化するのはストアドプロシージャの利点。
- ウ:細かく分割すると通信回数が増え、性能向上にはならないため誤り。
- エ:複数SQL文をまとめて1回で実行し通信回数を減らすのは正しい。
補足コラム
ストアドプロシージャはデータベースサーバ上に保存されるプログラムで、クライアントからの呼び出しで実行されます。これによりネットワーク負荷を軽減し、処理の一貫性やセキュリティを高めることが可能です。性能改善のためには適切な粒度で設計することが重要です。
FAQ
Q: ストアドプロシージャはなぜ性能向上に役立つのですか?
A: 複数のSQL文をまとめてサーバ側で処理し、クライアントとサーバ間の通信回数を減らすためです。
A: 複数のSQL文をまとめてサーバ側で処理し、クライアントとサーバ間の通信回数を減らすためです。
Q: ストアドプロシージャを細かく分けると何が問題ですか?
A: 通信回数が増え、ネットワーク負荷が高まり性能が低下する可能性があります。
A: 通信回数が増え、ネットワーク負荷が高まり性能が低下する可能性があります。
関連キーワード: ストアドプロシージャ、クライアントサーバシステム、通信回数、処理性能、セキュリティ

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

