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

19.10. 自动真空 #

这些设置控制自动清理功能的行为。请参阅第 24.1.6 节以了解更多信息。请注意,许多此类设置都能在每个表的基础上被覆盖;请参阅存储参数

autovacuum (布尔型) #

控制服务器是否应该运行自动清理启动器守护进程。默认情况下这是开启的;但是,还必须启用track_counts才能使用自动清理。该参数只能在postgresql.conf文件或服务器命令行中设置;但是,可以通过更改表存储参数为各个表禁用自动清理。

请注意,即使该参数被禁用,系统也会在必要时启动自动清理进程以防止事务 ID 环绕。请参阅第 24.1.5 节以了解更多信息。

autovacuum_max_workers (整数) #

指定任何给定时间内可能正在运行的自动清理进程(自动清理启动器除外)的最大数量。默认值为三个。此参数只能在服务器启动时设置。

autovacuum_naptime (整数) #

指定在任何给定数据库上运行自动清理的最小延迟时间。在每一轮中,守护进程都会检查数据库并按需要为该数据库中的表发布VACUUMANALYZE命令。如果未指定单位,此值将采用秒为单位。默认值是一分钟(1min)。此参数只能在postgresql.conf文件或服务器命令行中设置。

autovacuum_vacuum_threshold (整数) #

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

autovacuum_vacuum_insert_threshold (integer) #

指定在一个表中触发一次 VACUUM 所需的已插入元组数目。默认值为 1000 个元组。如果指定 -1,则自动清理不会根据插入数目在任何表中触发一次 VACUUM 操作。此参数只能在 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_vacuum_insert_scale_factor (floating point) #

指定在决定是否触发一次 VACUUM 时,要添加到 autovacuum_vacuum_insert_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 字段可能达到的最高年龄(以事务为单位)。请注意,即使在其他情况下停用自动真空时,系统也会启动自动真空进程以防止循环。

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

autovacuum_multixact_freeze_max_age (integer) #

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

对多事务进行 Vacuum 操作还允许从 pg_multixact/memberspg_multixact/offsets 子目录中删除旧文件,因此默认值为相对较低的 4 亿个多事务。此参数只能在服务器启动时设置,但可通过更改表存储参数对单独表降低此设置。有关更多信息,请参阅 第 24.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的值。请注意,如果有多个运行的 autovacuum 工作进程,则该值在它们之间按比例分配,以便每个工作进程的限制之和不超过该变量的值。此参数只能在postgresql.conf文件中或在服务器命令行中设置;但是,可以通过更改表存储参数来覆盖各个表的设置。