VACUUM [ VERBOSE ] [ ANALYZE ] [ table ] VACUUM [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
各テーブルについて vacuum の詳細な動作報告を出力します。
オプティマイザが問い合わせの実行に最も効率的な方法を決定す る際に使用する列の統計情報を更新します。
ゴミ掃除の対象とするテーブル名。デフォルトは全テーブルです。
解析の対象とする列名。デフォルトは全列です。
コマンドは正常に処理され、データベースのゴミ掃除が完了しました。
table に 関する報告のヘッダです。
table に 関する解析結果そのものです。
対象テーブルのインデックスに関する解析結果です。
Postgres における VACUUM には保存領域の回収・確保のための手段 とオプティマイザ用の情報収集のための手段という 2 つの目的があ ります。
VACUUM は、データベース内の全クラスを開き、 トランザクションからのロールバック用のレコードを空にし、システ ムカタログ内の統計情報を更新します。 統計情報として保全されているものには、タプル数と全クラスを保存し ているページ数があります。
VACUUM ANALYZE は各列のデータがどのように 分布しているのかを表す統計情報を収集します。 この情報は、問い合わせを実行する経路が複数存在する場合に価値があ ります。
VACUUM を定期的に実行すれば、データベースに対 するユーザからの問い合わせの処理速度が向上します。
以下の例は、regression データベース内のテーブルに VACUUM を実行したものです。
regression=> vacuum verbose analyze onek; NOTICE: --Relation onek-- NOTICE: Pages 98: Changed 25, Reapped 74, Empty 0, New 0; Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188; Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74. Elapsed 0/0 sec. NOTICE: Index onek_stringu1: Pages 28; Tuples 1000: Deleted 3000. Elapsed 0/0 sec. NOTICE: Index onek_hundred: Pages 12; Tuples 1000: Deleted 3000. Elapsed 0/0 sec. NOTICE: Index onek_unique2: Pages 19; Tuples 1000: Deleted 3000. Elapsed 0/0 sec. NOTICE: Index onek_unique1: Pages 17; Tuples 1000: Deleted 3000. Elapsed 0/0 sec. NOTICE: Rel onek: Pages: 98 --> 25; Tuple(s) moved: 1000. Elapsed 0/1 sec. NOTICE: Index onek_stringu1: Pages 28; Tuples 1000: Deleted 1000. Elapsed 0/0 sec. NOTICE: Index onek_hundred: Pages 12; Tuples 1000: Deleted 1000. Elapsed 0/0 sec. NOTICE: Index onek_unique2: Pages 19; Tuples 1000: Deleted 1000. Elapsed 0/0 sec. NOTICE: Index onek_unique1: Pages 17; Tuples 1000: Deleted 1000. Elapsed 0/0 sec. VACUUM