Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

20.10. 自动真空 #

这些设置控制 autovacuum 特性的行为。有关更多信息,请参阅 第 25.1.6 节。请注意,这些设置中的许多设置都可以按表进行覆盖;请参阅 存储参数

autovacuum (boolean) #

控制服务器是否应该运行 autovacuum 启动器守护进程。默认情况下,此项已启用;但是,track_counts 也必须启用才能使 autovacuum 正常工作。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但是,可以通过更改表存储参数来禁用各个表的 autovacuum。

请注意,即使禁用此参数,系统也会在必要时启动 autovacuum 进程以防止事务 ID 环绕。有关更多信息,请参阅 第 25.1.5 节

autovacuum_max_workers (integer) #

指定任何时刻可能运行的最大 autovacuum 进程数(autovacuum 启动器除外)。默认值为 3。此参数只能在服务器启动时设置。

autovacuum_naptime (integer) #

指定在任何给定数据库上运行 autovacuum 之间的最短延迟。在每一轮中,守护进程都会检查数据库并根据需要为该数据库中的表发出 VACUUMANALYZE 命令。如果未指定此值单位,则将其视为秒。默认值为一分钟 (1min)。此参数只能在 postgresql.conf 文件或服务器命令行中设置。

autovacuum_vacuum_threshold (integer) #

指定触发任何表中 VACUUM 所需的最小更新或删除元组数。默认值为 50 个元组。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。

autovacuum_vacuum_insert_threshold (整数) #

指定触发任何一个表中的 VACUUM 所需的已插入元组数。默认值为 1000 个元组。如果指定为 -1,autovacuum 将不会根据插入数对任何表触发 VACUUM 操作。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。

autovacuum_analyze_threshold (整数) #

指定触发任何一个表中的 ANALYZE 所需的最小已插入、已更新或已删除元组数。默认值为 50 个元组。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。

autovacuum_vacuum_scale_factor (浮点数) #

指定在决定是否触发 VACUUM 时要添加到 autovacuum_vacuum_threshold 的表大小分数。默认值为 0.2(表大小的 20%)。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。

autovacuum_vacuum_insert_scale_factor (浮点数) #

指定在决定是否触发 VACUUM 时要添加到 autovacuum_vacuum_insert_threshold 的表大小分数。默认值为 0.2(表大小的 20%)。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。

autovacuum_analyze_scale_factor (浮点数) #

指定在决定是否触发 ANALYZE 时要添加到 autovacuum_analyze_threshold 的表大小分数。默认值为 0.1(表大小的 10%)。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。

autovacuum_freeze_max_age (整数) #

指定表 pg_class.relfrozenxid 字段在强制执行 VACUUM 操作以防止表内事务 ID 环绕之前可以达到的最大年龄(以事务为单位)。请注意,即使在其他情况下禁用了自动清理,系统也会启动自动清理进程以防止环绕。

清理还允许从 pg_xact 子目录中删除旧文件,这就是默认值为相对较低的 2 亿个事务的原因。此参数只能在服务器启动时设置,但可以通过更改表存储参数来降低各个表的设置。有关更多信息,请参阅 第 25.1.5 节

autovacuum_multixact_freeze_max_age (integer) #

指定表 pg_class.relminmxid 字段在强制执行 VACUUM 操作以防止表内多事务 ID 环绕之前可以达到的最大年龄(以多事务为单位)。请注意,即使在其他情况下禁用了自动清理,系统也会启动自动清理进程以防止环绕。

清理多事务还允许从 pg_multixact/memberspg_multixact/offsets 子目录中删除旧文件,这就是默认值为相对较低的 4 亿个多事务的原因。此参数只能在服务器启动时设置,但可以通过更改表存储参数来降低各个表的设置。有关更多信息,请参阅 第 25.1.5.1 节

autovacuum_vacuum_cost_delay (floating point) #

指定将在自动 VACUUM 操作中使用的成本延迟值。如果指定 -1,将使用常规 vacuum_cost_delay 值。如果未指定单位,则此值将以毫秒为单位。默认值为 2 毫秒。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。

autovacuum_vacuum_cost_limit (integer) #

指定将在自动 VACUUM 操作中使用的成本限制值。如果指定 -1(这是默认值),则将使用常规 vacuum_cost_limit 值。请注意,如果有多个正在运行的自动清理工作进程,则该值将在它们之间按比例分配,以便每个工作进程的限制总和不超过此变量的值。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖各个表的设置。