タイプ: real
デフォルト: 0 (0ms)
分: 0 (0ms)
最大: 100 (100ms)
単位: milliseconds (ms)
コンテキスト: user
再起動: false

コストの限度を越えた場合、プロセスがスリープする時間の長さです。この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。デフォルトの値は0で、コストに基づいたvacuum遅延機能を無効にします。正の整数はコストに基づいたvacuumを有効にします。

コストに基づいたバキューム処理を使用する場合、vacuum_cost_delayの適切な値は通常かなり小さくなり、おそらく1ミリ秒以下になります。バキュームによるリソース消費の調整は、他のバキュームのコストパラメータを変更して行うことが最善です。vacuum_cost_delayを1ミリ秒以下に設定することは可能ですが、そうした遅延は古いプラットフォームでは正確には計測されないかも知れません。そうしたプラットフォームでは、VACUUMのリソース消費制限を1ミリ秒のときに得られる値以上にするには、他のVACUUMコストパラメータの変更が必要となるでしょう。とは言うものの、使用するプラットフォームで常に計測できる範囲でvacuum_cost_delayをできるだけ小さくするようにしてください。大きな遅延は助けになりません。

推奨事項 [EN]

Most of the time, you will want manual vacuum to execute without vacuum_delay, especially if you're using it as part of ETL. If for some reason you can't use autovacuum on an OLTP database, however, you may want to increase this to 20ms to decrease the impact vacuum has on currently running queries. Will cause vacuum to take up to twice as long to complete.

件のコメント