基本情報 平成26年度 春期 問29:テクノロジ系に関する問題
データベースのアクセス効率を低下させないために, 定期的に実施する処理はどれ か。
- a再編成正答
- bデータベースダンプ
- cバックアップ
- dロールバック
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは a「再編成」 です。
データベースは長く使うと、データの追加・削除・更新が繰り返されてぐちゃぐちゃになっていきます(隙間ができたり、データの並びが崩れたり)。これが「断片化」。
「再編成(reorganization)」はいったん整理し直してきれいに並べ直す作業で、検索が速くなります。
👉 覚え方:「再編成=お片付けで速くする」。
ほかの選択肢:b ダンプ(バックアップ用の出力)/c バックアップ(保険)/d ロールバック(操作の取消)。どれも保守ではあるが、効率を保つ目的とは違う。
なぜこれが正解か
正解は a。データベースは長期間運用するとレコードの追加・削除・更新により物理的なデータ配置が断片化(フラグメンテーション)し、未使用領域が散在、インデックスのバランスが崩れ、I/O回数が増加してアクセス効率が低下する。再編成(reorganization)はデータを物理的に再配置し連続領域に整理することで、アクセス効率を回復する保守作業。
各選択肢の解説
- a 再編成:データ物理配置の最適化でアクセス効率向上(正解)。
- b データベースダンプ:データを外部ファイルに書き出す→バックアップや移行用途。
- c バックアップ:障害時の復旧用にデータコピーを保管。
- d ロールバック:トランザクションの取消(commit前の状態に戻す)。
覚え方・ひっかけ注意
「再編成=物理整理=速度回復」。バックアップ・ダンプは「データの保全」、ロールバックは「異常時の取消」、再編成は「性能維持」と目的を区別する。Oracleの`ALTER TABLE ... MOVE`、PostgreSQLの`VACUUM FULL`/`CLUSTER`、MySQLの`OPTIMIZE TABLE`、SQL Serverの`ALTER INDEX ... REBUILD/REORGANIZE`が再編成コマンド。実施中はテーブルがロックされる場合があり、運用時間外に実施するのが定石。
理論的背景
RDBMSの物理データ構造は時間経過とともに以下の劣化が発生する:
- テーブルフラグメンテーション: DELETEによる空き領域が散在、シーケンシャルスキャン時のI/O効率低下
- インデックス断片化: B+木の挿入・削除で葉ノードの利用率低下、ページ分割で連続性喪失
- PCTFREE(予約空き領域)の枯渇: UPDATEで行サイズ増加時のレコード移動(Oracle: row migration)
- 統計情報の陳腐化: オプティマイザがコスト見積を誤り非効率な実行計画選択
再編成は物理データを再配置し、これらの劣化を解消する。
実務での使われ方
各RDBMS の再編成手法:
- Oracle: ALTER TABLE ... MOVE / SHRINK SPACE、ALTER INDEX ... REBUILD ONLINE、自動セグメントアドバイザ
- PostgreSQL: VACUUM(軽量、ロックなし)、VACUUM FULL(フル再編成、排他ロック)、CLUSTER(インデックス順整理)、REINDEX、AutoVacuum機能
- MySQL InnoDB: OPTIMIZE TABLE(内部的にALTER TABLEで再作成)、innodb_file_per_tableオプション、Online DDL
- SQL Server: ALTER INDEX ... REBUILD(再構築、フル再生成)/ REORGANIZE(軽量、葉ページ整列のみ)、メンテナンスプラン
再編成中はテーブルロックされる場合があり、ダウンタイム影響を最小化するためオンライン再編成(pg_repack、gh-ost、pt-online-schema-change等のツール)が実務で使われる。クラウドDB(AWS Aurora、Google Cloud SQL)では自動化されメンテナンス窓中に実施される。
NoSQL(Cassandra、ScyllaDB)でもコンパクション(SSTableの統合)が同様の役割を果たす。LSM-Tree系は構造的に書込み時に断片化しやすく、定期コンパクションが性能維持に必須。
試験での位置づけ
FE/AP/DBスペシャリスト・ITサービスマネージャで頻出。①データベース保守の4分類(再編成・バックアップ・統計情報更新・整合性チェック)、②各保守操作の目的、③保守タイミング、④オンライン/オフライン再編成のトレードオフ、が主要論点。
選択肢の発展補足
バックアップは別観点で重要: フルバックアップ・差分バックアップ・増分バックアップ・トランザクションログバックアップの組合せでRPO/RTO(目標復旧時点/目標復旧時間)を達成する。ダンプ(mysqldump、pg_dump、exp/expdp)は論理バックアップで移行用途、物理バックアップ(オンライン物理コピー、RMAN、pg_basebackup)は高速復旧用途。ロールバックはトランザクション単位の取消で、データベース全体の復旧(point-in-time recovery)にはアーカイブログとフルバックアップの組合せが必要。これらの保守作業の役割分担は、データベース運用設計の基礎であり、DBA(Database Administrator)の重要なスキルセット。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成26年度 春期 問29/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。