自動バキュームに日を要する大きなテーブルがいくつかあり、バキュームが完了するまでパフォーマンスが低下することがあります。私が見たほとんどの推奨事項は、自動バキュームVACUUM
sが行う作業が少なくなるように、勤務時間外に手動でVACUUM
を行うことについて言及していますが、自動バキュームが完了するまでに数日かかる場合、手動でVACUUM
を絞る(24時間のピークアクティビティサイクルを想定)
マニュアルVACUUM
が完了するまで数日かかると思いますか?それとも私の仮定は間違っていますか?
「ソート」。
自動VACUUM
は手動バキュームよりも低い強度で実行される可能性があるため、各バッチ間でより長く停止します。 autovacuum_vacuum_cost_delay
はvacuum_cost_delay
とは異なる設定にすることができます。デフォルトでは、手動バキュームの遅延はなく、自動バキュームのみです。
Autovacuumはまた、並行クエリのブロックを回避するためにより強力に機能し、別のクエリがバキュームと競合するロックを取得しようとすると、その作業を中止します。真空フェーズによっては、実際にはそれほど遅くならない場合や、かなりの作業が破棄される場合があります。最初のフェーズのヒープスイープでデッドタプルをマークし、可視性マップを設定しても、途中で打ち切られても、その後のバキュームで一部の読み取りが繰り返される可能性がありますが、それほど問題になりません。インデックスを更新する場合ははるかにコストがかかりますが、バキュームがキャンセルされた場合に失われる作業量を減らすためにバッチで行われます。
関連するパラメータ、特にautovacuum_vacuum_cost_delay
については autovacuum configuration を参照してください。これは 手動バキュームで使用されるvacuum_cost_delay
設定 とは異なることに注意してください。