The catalog pg_autovacuum stores optional per-relation configuration parameters for
The auto-vacuum daemon
. If there is an entry here for a particular relation, the given parameters will be used for autovacuuming that table. If no entry is present, the system-wide defaults will be used.
Table 42-10. pg_autovacuum Columns
Name |
Type |
References |
Description |
vacrelid
|
oid
|
pg_class
.oid
|
The table this entry is for |
enabled
|
bool
|
|
If false, this table is never autovacuumed |
vac_base_thresh
|
integer
|
|
Minimum number of modified tuples before vacuum |
vac_scale_factor
|
float4
|
|
Multiplier for reltuples to add to vac_base_thresh
|
anl_base_thresh
|
integer
|
|
Minimum number of modified tuples before analyze |
anl_scale_factor
|
float4
|
|
Multiplier for reltuples to add to anl_base_thresh
|
vac_cost_delay
|
integer
|
|
Custom vacuum_cost_delay parameter |
vac_cost_limit
|
integer
|
|
Custom vacuum_cost_limit parameter |
The autovacuum daemon will initiate a VACUUM operation on a particular table when the number of updated or deleted tuples exceeds vac_base_thresh plus vac_scale_factor times the number of live tuples currently estimated to be in the relation. Similarly, it will initiate an ANALYZE operation when the number of inserted, updated or deleted tuples exceeds anl_base_thresh plus anl_scale_factor times the number of live tuples currently estimated to be in the relation.
Any of the numerical fields can contain -1 (or indeed any negative value) to indicate that the system-wide default should be used for this particular value. Observe that the vac_cost_delay variable inherits its default value from the autovacuum_vacuum_cost_delay configuration parameter, or from vacuum_cost_delay if the former is set to a negative value. The same applies to vac_cost_limit.