「運用管理 - 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」からの出題です。
ANALYZEは対象テーブルの全データを検証するので非常に負荷が高い。夜間などデータベースアクティビティが少ない時間帯に実行するのが望ましい。
VAVUUMコマンドを実行すると、同じテーブルについてANALYZEも自動的に実行される。
自動バキュームを実行すると、VACUUMだけでなく、ANALYZEも自動的に実行される。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2022年8月10日
SELECTなどSQLを実行するときの性能向上を図るためにインデックスが作成されますが、インデックスがあっても全件走査を実行する方が高速な場合もありますし、複数あるインデックスのうちどれを使えば高速になるのか単純には決定できない場合もあります。
SQLの実行速度に最も大きな影響を与えるのはディスクアクセスです。複数考えられる実行計画のそれぞれで、どれくらいのディスクアクセスが必要になりそうかを予想するため、各テーブルのデータ件数、テーブル内の列ごとのデータの散らばり具合などを参照します。
このテーブルの状態に関する情報を取得するのがANALYZEです。すべてのテーブルについて一度はANALYZEを実行し、またデータ件数やデータの散らばり具合に大きく影響するような更新があったときは、その度にANALYZEを実行することが望ましいです。
ANALYZEはテーブルのごく一部のデータをサンプリングして統計情報を計算するので、短時間で処理が終わります。 psqlのコマンドラインなどからテーブル名を指定してANALYZEを実行する場合、テーブルの所有者、スーパーユーザーなどがANALYZEを実行することができます。
VACUUMコマンドの実行時にANALYZEをオプションとして指定すると、VACUUMとANALYZEが同時に実行されますが、オプション指定しなければVAVUUMのみが実行されます。
自動バキュームは変更量が一定以上に達したテーブルについて自動的にVACUUMを実行する機能ですが、このときは同時にANALYZEも実行されます。
従って正解はA、B、Eです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.