18.10. 自动清理
这些设置控制自动清理的缺省行为。请参阅Section 23.1.6获取更多信息。
autovacuum
(boolean
)
控制服务器是否应该启动autovacuum守护进程。缺省是关闭的。然而, track_counts还必须启用自动清理工作。 这个选项只能在postgresql.conf
文件里或者是服务器命令行中设置。
请注意,即使禁用该参数,如果有必要避免事务ID重叠,系统仍将启动自动清理进程。 请参阅Section 23.1.5获取更多详细信息。
log_autovacuum_min_duration
(integer
)
如果它运行至少毫秒指定数,导致记录自动清理所执行的每个动作。 此设置为零记录所有自动清理操作。减一(默认)禁用日志记录 自动清理动作。例如,如果您将其设置为250ms
, 那么将记录运行250ms或更长时间的所有自动清理和分析。 此外,当这个参数设置为除-1
外的其他任何值, 如果由于冲突锁的存在而忽略自动清理操作,则记录这条消息。 启用此参数可以有益于跟踪自动清理活动。这个设置只能在postgresql.conf
文件或者服务器命令行上设置。
autovacuum_max_workers
(integer
)
指定自动清理进程的最大数(除了自动清理发射器),它可以在任一时刻运行。 默认是三。这个参数只能在服务器启动时设置。
autovacuum_naptime
(integer
)
声明运行在任何给定数据库上的autovacuum之间的最小延迟。在每次运行的周期里, 守护进程都会检查一个数据库, 并根据需要为该数据库的表发出VACUUM
和ANALYZE
命令。 这个延迟是以秒计的,缺省为1分钟(1min
)。 这个选项只能在postgresql.conf
文件里或者服务器命令行中设置。
autovacuum_vacuum_threshold
(integer
)
声明在任何表里触发VACUUM
所需最小的行更新或删除数量。缺省是500。 这个选项只能在postgresql.conf
文件里或者服务器命令行中设置。 此处的设置可以被改变存储参数的独立的表覆盖。
autovacuum_analyze_threshold
(integer
)
声明在任何表里触发ANALYZE
所需最小的行插入、更新、删除数量。缺省是50。 这个选项只能在postgresql.conf
文件里或者服务器命令行中设置。 此处的设置可以被改变存储参数的独立表覆盖。
autovacuum_vacuum_scale_factor
(floating point
)
声明在判断是否触发一个VACUUM
时增加到autovacuum_vacuum_threshold
参数里面的表尺寸的分数。 缺省是0.2(表大小的20%)。这个选项只能在postgresql.conf
文件里或者服务器命令行中设置。 此处的设置可以被改变存储参数的独立表覆盖。
autovacuum_analyze_scale_factor
(floating point
)
声明在判断是否触发一个ANALYZE
时增加到autovacuum_analyze_threshold
参数里面的表尺寸的分数。缺省是0.1(表大小的10%)。 这个选项只能在postgresql.conf
文件里或者服务器启动的时候设置。 此处的设置可以被改变存储参数的独立表覆盖。
autovacuum_freeze_max_age
(integer
)
指定表的pg_class
在事务中的最大寿命。relfrozenxid
字段能够在强制 VACUUM
操作以防止事务 ID在表内循环重复之前完成。需要注意的是,即使autovacuum被禁止系统也会调用 autovacuum 进程来防止循环重复。
自动清理允许删除来自pg_clog
子目录的旧文件, 默认值是相对低于200百万事务。该参数只能在服务器启动时设置, 但是此处的设置可以通过改变存储参数独立表减少。 更多信息请参见Section 23.1.5。
autovacuum_vacuum_cost_delay
(integer
)
声明将在自动VACUUM
操作里使用的开销延迟数值。 声明-1将使用普通的vacuum_cost_delay数值。 缺省值是20毫秒。 这个选项只能在postgresql.conf
文件里或者在服务器启动的时候设置。 此处的设置可以被改变存储参数的独立表覆盖。
autovacuum_vacuum_cost_limit
(integer
)
声明将在自动VACUUM
操作里使用的开销限制数值。 -1(缺省值)将使用普通的vacuum_cost_limit数值。 要注意的是值将按比例分配给运行autovacuum工作者, 如果有一个以上,这样每个工作者限制总和不会超过此变量的极限。 这个选项只能在postgresql.conf
文件里或者在服务器启动的时候设置。 此处的设置可以通过改变存储参数独立表覆盖。