https://www.postgresql.jp/document/11/html/sql-vacuum.html
データの削除や更新によって不要になったデータ領域を回収する仕組み。
実行には、対象のテーブルやデータベースに対して所有者権限が必要である。
VACUUM
VACUUM FULL
- VACUUM FULL [テーブル名]
- ファイルサイズが小さくなる。
- テーブルロックを取得する。
- テーブル名を指定しない場合、データベース内のすべてのテーブルが対象になる。
- 実行
- クライアントアプリケーション vacuumdb を -f または --full オプションで実行する。
- psql でデータベースに接続して VACUUM FULL 文を実行する。
ANALYZE
https://www.postgresql.jp/document/11/html/sql-analyze.html
- ANALYZE [テーブル名(カラム名)]
- VACUUM ANALYZE;
- クライアントアプリケーション vacuumdb の -z, --analyze オプションで VACUUM ANALYZE と同じ。
データベースに対する問い合わせの計画を最適化するため、テーブルの内容を解析する。
テーブルのアクセス頻度は計画とは関係ないので、ANALYZEでは収集されない。
テーブル名を指定しなければ、接続先のデータベース内の全テーブルがANALYZEされる。
ANALYZEは自動バキュームの実行時に自動的に実行される。
ANALYZE、VACUUM ANALYZEは排他ロックしない。
テーブルのごく一部のデータをサンプリングして統計情報を計算するので、短時間で処理が終わる。
受験対策
2.32_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業」
2.50_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」
2.66_Silverの例題解説「S2 運用管理 -S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」
2.87_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」
2.108_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」
2.128_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)
自動バキューム
- postgresql.conf
- autovacuum パラメータを on に設定することで実行される。
- それぞれのテーブルについて更新量が閾値を超えたときにテーブル単位で VACUUM が実行される。
- 常時存在する自動バキュームランチャというデーモンから、自動バキュームワーカが定期的に起動されることで実行される。
- VACUUMとANALYZEを自動的に実行する。
- VACUUMは一時テーブル(temporary table)を対象とできるが、自動バキュームでは一時テーブルは対象外である。
- autovacuum_max_workersというパラメータがあり、これで指定した個数を超えるワーカープロセスは起動しないようになってる。
受験対策
2.12_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業」
1.29_Silverの例題解説「運用管理 - 基本的な運用管理作業」2.29_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業」
2.39_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業」
2.51_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(自動バキュームの概念と動作)」
2.67_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(自動バキュームの概念と動作)」
2.87_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」
2.88_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(自動バキュームの概念と動作)」
2.108_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」
2.109_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(自動バキュームの概念と動作)
2.129_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(自動バキュームの概念と動作)」