基本情報技術者 2010年 秋期 午前(科目A) 問32
問題文
データベースのアクセス効率を低下させないために、定期的に実施する処理はどれか。
選択肢
ア:再編成(正解)
イ:データベースダンプ
ウ:バックアップ
エ:ロールバック
データベースのアクセス効率を低下させないために、定期的に実施する処理はどれか。【午前2 解説】
要点まとめ
- 結論→ 再編成(インデックス再構築や断片化解消)を定期実行することで、ページ断片化や空き領域の影響を抑え I/O 応答性を維持できます。
- 根拠→ 再編成はインデックスの断片化除去とデータページの詰め直し、統計情報更新により検索コストと物理I/Oを低減する処理だからです。
- 差がつくポイント→ ダンプやバックアップは保全、ロールバックはトランザクション制御が目的であり、性能改善を主目的としない点を見抜くことが重要です。
正解の理由
定期的に「アクセス効率を低下させない」ために行うべき処理は、データ格納状態やインデックス構造の最適化を行う再編成です。データの更新や削除を繰り返すと、データページやインデックスに空き領域や断片化が生じ、範囲検索やインデックス走査時の不要なI/Oが増えます。再編成(再構築・最適化)はこれらを解消してページ密度を高め、検索やスキャンの効率を回復させます。そのため性能維持・改善という観点では「再編成」が最適であり、よってアが正解です。
よくある誤解
- バックアップ/ダンプで性能が改善する:バックアップはデータ保全が目的で、アクセス効率の改善には直接寄与しません。
- ロールバックで過去の状態に戻せば効率が上がる:ロールバックはトランザクション整合性のための仕組みで、断片化の解消にはならない点を誤解しやすいです。
- 再編成は常にフル再構築で良い:再編成にも「軽い再編成(オンライン/低影響)」と「フル再構築(高負荷だが効果大)」があり、時間帯や運用ポリシーで選択すべきです。
解法ステップ
- 問題文のキーワード「アクセス効率を低下させない」「定期的に実施」を確認する。
- 各選択肢の目的を整理する(保全、性能、トランザクション制御など)。
- 「アクセス効率=I/Oや検索コストの低下」に直結する処理を選ぶ(断片化の解消やインデックス最適化)。
- 断片化や統計の更新を行う処理が再編成であると判断して選択する。
選択肢別の誤答解説
- ア: 再編成 — 正解。インデックス再構築やテーブルの最適化で断片化を解消しアクセス効率を改善します。
- イ: データベースダンプ — 誤り。ダンプはデータのエクスポート(バックアップや移行)を目的とし、性能維持の直接的手段ではありません。
- ウ: バックアップ — 誤り。障害対策やデータ保全のための処理であり、アクセス効率低下の防止にはならないのが通常です。
- エ: ロールバック — 誤り。トランザクションを取り消して整合性を保つ処理であり、断片化解消や性能改善のための定期処理ではありません。
補足コラム
- 再編成の具体例:インデックスの再構築(rebuild)・再編成(reorganize)、テーブルの OPTIMIZE/ANALYZE、統計情報の更新。
- DBMS別コマンド例(代表例):
- SQL Server: ALTER INDEX
REBUILD / ALTER INDEX REORGANIZE - Oracle: ALTER INDEX
REBUILD / DBMS_STATS.GATHER_TABLE_STATS(...) - MySQL (InnoDB): OPTIMIZE TABLE <table_name>; / ANALYZE TABLE <table_name>;
- SQL Server: ALTER INDEX
- 運用での注意点:再編成はロックやI/O負荷を伴うため、実施タイミング(夜間/保守窓)とオンライン再編成の可否を考慮してください。モニタリングで断片化率や平均ページ密度を基準に判定すると効果的です。
FAQ
Q1. どのくらいの頻度で再編成を行えばよいですか?
A1. 更新頻度と断片化率に依存します。頻繁に更新のある大規模テーブルは週次〜月次で監視し、断片化が閾値(例:25〜30%)を超えたら実行すると良いです。
A1. 更新頻度と断片化率に依存します。頻繁に更新のある大規模テーブルは週次〜月次で監視し、断片化が閾値(例:25〜30%)を超えたら実行すると良いです。
Q2. 再編成と統計情報更新はどちらが重要ですか?
A2. どちらも重要です。再編成が物理的な断片化を解消する一方、統計更新はクエリプランの最適化に必須です。両方を組み合わせて運用します。
A2. どちらも重要です。再編成が物理的な断片化を解消する一方、統計更新はクエリプランの最適化に必須です。両方を組み合わせて運用します。
Q3. 本番稼働中に再構築すると影響が出ますか?
A3. オンライン再構築機能があるDBMSでは影響を最小化できますが、完全に無影響ではありません。負荷やロックの影響範囲を確認して実施時間を選定してください。
A3. オンライン再構築機能があるDBMSでは影響を最小化できますが、完全に無影響ではありません。負荷やロックの影響範囲を確認して実施時間を選定してください。
関連キーワード: 再編成、インデックス再構築、断片化解消、OPTIMIZE TABLE、ALTER INDEX REBUILD、統計情報更新、性能チューニング、データベース保守

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

