18.9. 自动清理

这些设置控制autovacuum的缺省行为。请参阅节 Section 23.1.5获取更多信息。

autovacuum(boolean)

控制服务器是否应该启动autovacuum子进程。缺省是启动的。 然而track_counts还必须启用自动清理工作 这个选项只能在服务器启动的时候或者在postgresql.conf 文件里设置。

需要注意的是即使禁用该参数,如果需要组织事务ID循环,系统会启动autovacuum进程。 可参阅Section 23.1.4

log_autovacuum_min_duration(integer)

如果动作至少是在指定的毫秒数中运行,那么记录这些autovacuum实施的动作。 将其设置为零记录autovacuum动作。例如,如果将它设置为250ms, 那么会记录所有的运行时间大于等于250ms的自动清理和分析。 启用这个参数可以有效的跟踪autovacuum活动。这个参数只能在postgresql.conf 文件或服务器命令行中设置。

autovacuum_max_workers(integer)

声明autovacuum进程的最大值,缺省值是3,只能在服务器启动时设置。

autovacuum_naptime(integer)

声明autovacuum子进程的活跃周期之间的最小延迟。在每次运行的周期里, 子进程都会检查一个数据库,并根据需要为该数据库的表发出 VACUUMANALYZE命令。这个延迟是以秒计的, 缺省为 60(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)

指定表的pg_class在事务中的最大寿命。relfrozenx id 字段能够在强制VACUUM操作以防止事务 ID在表内循环重复 之前完成。需要注意的是,即使 autovacuum 被禁止系统也会调用 autovacuum 进程来防止循环重复。

VACUUM也允许从pg_clog子目录中删除旧文件, 这也是为什么缺省值是一个相对较低的2亿事务。 这个参数只能在服务器启动时设置,但可以通过修改存储参数来为为 每个表降低该设置。更多信息可参阅Section 23.1.4

autovacuum_vacuum_cost_delay(integer)

声明将在自动VACUUM操作里使用的开销延迟数值。 -1(缺省值)将使用普通的vacuum_cost_delay 数值。默认值是 200000000(2亿)。该参数只能在服务器启动时或者postgresql.conf 文件里进行设置,但是此处的设置可以通过改变存储参数被单个表所覆盖。

autovacuum_vacuum_cost_limit(integer)

声明将在自动VACUUMoperations 操作里使用的开销限制数值。 -1(缺省值)将使用普通的vacuum_cost_limit 数值。需要注意的是,这个值按照运行自动清理进程的比例进行分配(如果存在的话), 因此所有进程的限制的总和不会超过这个变量。 这个选项只能在服务器启动的时候或者在postgresql.conf文件里进行设置。 此处的设置可以针对每个表,通过改变存储参数来改写