PostgreSQL 9.3内のVACUUM
機能の洞察に感謝します。私はドキュメントを読み、少し調べましたが、これに対する明確な答えは見つかりませんでした。
9.3サーバー用に毎週のDBメンテナンスジョブを設定しています。
これの一部はVACUUM FULL
。それは小さめのDBであり、週末のメンテナンス期間が適切であるため、FULL
を問題なく実行できます。
コマンドにANALYZE
オプションを追加する意味はありますか?
9.3のドキュメントによると:
VACUUM FULL
は、テーブルの内容全体を余分なスペースのない新しいディスクファイルに書き換え、未使用のスペースをオペレーティングシステムに返すことができるようにします。
テーブルが完全に再作成された場合、ANALYZE
が発生するように特別に要求する必要がありますか、または行がテーブルの新しいバージョンに書き込まれるときに統計が自動的に更新されますか?
統計は、列の値から生成されます。これらの値はVACUUM FULL
またはVACUUM
によっても変更されないため、新しいANALYZE
は特に必要ありませんです。
ただし、データベースがメンテナンスウィンドウにある場合は、データベースを実行する良い機会です。その実行時間は、VACUUM FULL
と比較して取るに足らない可能性があります。
デフォルトでは、DBAはこれを手動で行うのではなく、autovacuum/auto-analyzeに依存します。ただし、バルクロードまたは大幅に変更されたばかりの新しいテーブルが、適切なクエリにすぐに関与する場合は、手動のANALYZE
を除きます。良い統計なしに計画を立てることはできません。