今回は、Silverの「S2 運用管理 - S2.5 基本的な運用管理作業(自動バキュームの概念と動作)」からの出題です。
一定時間ごとに自動的にバキュームが実行される。
システムの負荷が低い時に自動的にバキュームが実行される。
大量のデータの挿入・更新・削除があったテーブルに対して、自動的にバキュームが実行される。
トランザクションIDの周回問題を回避するために、自動的にバキュームが実行される。
バキュームが実行されるタイミングが予測できないため、デフォルトでは実行されないようになっている。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2016年9月5日
PostgreSQLは追記型のデータ構造を採っており、データをDELETEしても、データに削除済フラグがつくだけで、物理的にはデータが削除されません。UPDATEも内部的にはDELETEとINSERTを実行するため、古いデータが残り、そのまま放置すると物理的なデータ量が増えていきます。
この削除済みデータの領域を回収するのがバキューム(VACUUM)機能であり、それを自動的に実行するのが自動バキュームです。
自動バキュームでは、データベース内の各テーブルを検査し、挿入・更新・削除などの変更が一定量以上行われていた場合に自動的にバキュームが実行されます。また、トランザクションIDの周回問題を回避するため、テーブルのrelfrozenid値がautovacuum_freeze_max_ageより大きい場合も自動的にバキュームが実行されます。
自動バキュームの実行はあくまでもデータ更新の量に依存するため、経過時間やシステムの負荷などとは関係がありません。
自動バキュームの実行は必須ではありませんが、強く推奨されており、またデフォルトで実行されるようになっています。パラメータもデフォルトで適切な値に設定されています。
従って、正解はCとDです。
例題解説についてのご質問やご意見は以下からご連絡ください。
※本例題および解説は、例題作成者から提供されたものです。実際の試験問題とは異なります。
※実際の試験問題に関するお問い合わせについてはご回答いたしかねます。あからじめご了承ください。
© EDUCO All Rights Reserved.