这些设置控制自动清理特性的行为。 详情请见第 24.1.6 节。请注意在每个表基础上可以重写这些设置; 参阅存储参数。
autovacuum
(boolean
)
控制服务器是否运行自动清理启动器后台进程。默认为开启,不过要自动清理正常工作还需要启用track_counts。该参数只能在postgresql.conf
文件或服务器命令行中设置。
然而,为单表通过修改表存储参数可以禁用自动清理。
注意即使该参数被禁用,系统也会在需要防止事务ID回卷时发起清理进程。详情请见第 24.1.5 节。
log_autovacuum_min_duration
(integer
)
如果自动清理运行至少该值所指定的毫秒数,被自动清理执行的每一个动作都会被日志记录。将该参数设置为0会记录所有的自动清理动作。-1(默认值)将禁用对自动清理动作的记录。例如,如果你将它设置为250ms
,则所有运行250ms或更长时间的自动清理和分析将被记录。此外,当该参数被设置为除-1
外的任何值时,如果一个自动清理动作由于存在一个锁冲突而被跳过,将会为此记录一个消息。开启这个参数对于追踪自动清理活动非常有用。该设置只能在postgresql.conf
文件或者服务器命令行上设置。
但是可以通过为单表修改表存储参数重写这个设置。
autovacuum_max_workers
(integer
)
指定能同时运行的自动清理进程(除了自动清理启动器之外)的最大数量。默认值为3。该参数只能在服务器启动时设置。
autovacuum_naptime
(integer
)
指定自动清理在任意给定数据库上运行的最小延迟。在每一轮中后台进程检查数据库并根据需要为数据库中的表发出VACUUM
和ANALYZE
命令。延迟以秒计,且默认值为1分钟(1min
)。该参数只能在postgresql.conf
文件或在服务器命令行上设置。
autovacuum_vacuum_threshold
(integer
)
指定能在一个表上触发VACUUM
的被插入、被更新或被删除元组的最小数量。默认值为50个元组。该参数只能在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
)
指定在一个VACUUM
操作被强制执行来防止表中事务ID回卷之前,一个表的pg_class
.relfrozenxid
域能保持的最大年龄(事务的)。注意即便自动清理被禁用,系统也将发起自动清理进程来阻止回卷。
清理也允许从pg_xact
子目录中移除旧文件,这也是为什么默认值被设置为较低的2亿事务。该参数只能在服务器启动时设置,但是对于个别表可以通过修改存储参数来降低该设置。详见第 24.1.5 节。
autovacuum_multixact_freeze_max_age
(integer
)
指定在一个VACUUM
操作被强制执行来防止表中多事务ID回卷之前,一个表的pg_class
.relminmxid
域能保持的最大年龄(多事务的)。注意即便自动清理被禁用,系统也将发起自动清理进程来阻止回卷。
清理多事务也允许从pg_multixact/members
和pg_multixact/offsets
子目录中移除旧文件,这也是为什么默认值被设置为较低的400万多事务。该参数只能在服务器启动时设置,但是对于个别表可以通过修改存储参数来降低该设置。详见第 24.1.5.1 节。
autovacuum_vacuum_cost_delay
(integer
)
指定用于自动VACUUM
操作中的代价延迟值。如果指定-1(默认值),则使用vacuum_cost_delay值。默认值为20毫秒。该参数只能在postgresql.conf
文件或在服务器命令中设置。对个别表可以通过修改存储参数来覆盖该设置。
autovacuum_vacuum_cost_limit
(integer
)
指定用于自动VACUUM
操作中的代价限制值。如果指定-1(默认值),则使用vacuum_cost_limit值。注意该值被按比例地分配到运行中的自动清理工作者上(如果有多个),因此每一个工作者的限制值之和绝不会超过这个变量中的限制值。该参数只能在postgresql.conf
文件或在服务器命令中设置。对个别表可以通过修改存储参数来覆盖该设置。