Kugelblitz

いつ何時誰の挑戦でも受ける!

PostgresSQLで手動VACUUMと統計情報を再計算

PostgresSQLで、重くないはずのクエリが何故か重いときは、VACUUMや、統計情報が計算されていないことを疑います。

手順ですが、まず、

select * from pg_stat_all_tables where relname = '調査対象のテーブル名';

で、統計情報テーブルを確認します。last_vacuum、last_analyzeカラムに、最後にVACUUMと、統計情報の計算を行った日時が設定されていますので、これらの日時があまりにも古い場合は、

VACUUM ANALYZE 調査対象のテーブル名;

で、VACUUMと、統計情報の計算が行われます。

再度、最初のクエリを実行して、last_vacuum、last_analyzeカラムの値が更新されていることを確認します。

Pocket

他の記事