自动清理
系统自动清理进程自动执行VACUUM和ANALYZE命令,回收被标识为删除状态的记录空间,并更新表的统计数据。
autovacuum_compaction_rows_limit
参数说明:小CU的阈值,存活元组数小于这个值的就会被认为是小CU。该参数仅8.2.1.300及以上集群版本支持。
参数类型:USERSET
取值范围:整型,-1~5000
默认值:2500
![](https://support.huaweicloud.com/devg-910-dws/public_sys-resources/notice_3.0-zh-cn.png)
版本低于9.1.0.100,禁止设置该参数,否则可能会导致主键数据重复。
![](https://support.huaweicloud.com/devg-910-dws/public_sys-resources/note_3.0-zh-cn.png)
- 版本低于9.1.0.100,默认值为-1,表示关闭0CU开关。
- 9.1.0.100版本,该参数默认值为0。
- 9.1.0.200及以上版本,该参数默认值为2500。
- 该参数不建议自行修改,如需修改请联系技术支持。
autoanalyze_mode
参数说明:设置autoanalyze的模式。该参数仅8.2.0及以上集群版本支持。
参数类型:USERSET
取值范围:枚举类型
- normal表示普通的autoanalyze。
- light表示轻量化的autoanalyze。
默认值:
- 若当前集群为低版本升级到8.2.0及以上集群版本,为保持和前向兼容,默认值为normal。
- 若当前集群为新装的8.2.0及以上集群版本,默认值为light。
analyze_stats_mode
参数说明:设置analyze计算统计信息的模式。
参数类型:USERSET
取值范围:枚举类型
- memory表示强制使用内存计算统计信息,不计算多列统计信息。
- sample_table表示强制使用临时采样表计算统计信息,临时表不支持使用该模式。
- dynamic表示按内存maintenance_work_mem大小自适应选择统计信息计算模式,若maintenance_work_mem可放下样本,则使用内存方式,否则使用临时采样表方式。
默认值:
- 若当前集群为低版本升级到8.2.0.100及以上集群版本,为保持和前向兼容,默认值为memory。
- 若当前集群为新装的8.2.0.100及以上集群版本,默认值为dynamic。
analyze_sample_mode
参数说明:设置analyze时使用的采样模型。
参数类型:USERSET
取值范围:整型,0~2。
- 0 表示使用默认蓄水池采样模型。
- 1 表示使用优化的蓄水池采样模型。
- 2 表示使用range采样模型。
默认值:0
autovacuum_max_workers
参数说明:设置能同时运行的自动清理线程的最大数量。
参数类型:SIGHUP
取值范围:整型,0~128 。其中0表示不会自动进行autovacuum。
默认值:6
![](https://support.huaweicloud.com/devg-910-dws/public_sys-resources/note_3.0-zh-cn.png)
该参数与#ZH-CN_TOPIC_0000001764650468/s8d6c38309e594a16a07f79ae412b63c6共同发挥作用,对系统表和用户表的清理规则如下:
- autovacuum_max_workers = 0时,autovacuum被彻底关闭,不会对任何表做清理。
- autovacuum_max_workers > 0和autovacuum = off,只对系统表和开了delta表的列存表做清理(如vacuum delta表,vacuum cudesc表和delta merge)。
- autovacuum_max_workers > 0和autovacuum = on,会对所有表做清理。
autovacuum_max_workers_hstore
参数说明:设置Autovacuum_max_workers里面,能同时运行的专用于清理hstore的自动清理线程的最大数量。
参数类型:SIGHUP
取值范围:整型
默认值:3
![](https://support.huaweicloud.com/devg-910-dws/public_sys-resources/note_3.0-zh-cn.png)
当需要使用hstore表时,一定要同步修改以下几个参数的默认值,否则会导致hstore表性能严重劣化,推荐的修改配置是:
autovacuum_max_workers_hstore=3,autovacuum_max_workers=6,autovacuum=true。
autovacuum_naptime
参数说明:设置两次自动清理操作的时间间隔。
参数类型:SIGHUP
取值范围:整型,1~2147483 ,单位为秒(s)。
默认值:60s
autovacuum_vacuum_cost_delay
参数说明:设置在自动VACUUM操作里使用的开销延迟数值。
参数类型:SIGHUP
取值范围:整型,-1~100,单位为毫秒(ms)。其中-1表示使用常规的vacuum_cost_delay。
默认值:2ms
check_crossvw_write
参数说明:控制是否要开启跨VW写场景的检测。该参数仅9.1.0.100及以上集群版本支持。
参数类型:USERSET
取值范围:整型,-1、1。
- -1表示兼容9.0.3版本能力。对于v3表vacuum,只清理所有epoch的非最后一个文件。
- 1表示检查是否为跨VW写场景。对于v3表vacuum,若检查为非跨VW写的场景,清理所有epoch的非最后一个文件,清理当前epoch的最后一个文件,清理小于当前epoch的最后一个文件。若检查为跨VW写的场景,CN节点会获取所有DN节点的epoch信息包装成epochList下发给元数据VW,v3表vacuum会清理所有epoch的非最后一个文件,清理小于max{epochList}且不在epochList中的epoch最后一个文件。
默认值:1
enable_pg_stat_object
参数说明:控制auto vacuum是否更新PG_STAT_OBJECT系统表。该参数仅8.2.1及以上集群版本支持。
参数类型:USERSET
取值范围:布尔型
- on表示auto vacuum更新PG_STAT_OBJECT系统表。
- off表示auto vacuum不更新PG_STAT_OBJECT系统表。
默认值:on