更新时间:2024-06-21 GMT+08:00
哪些系统表不能做VACUUM FULL
从功能实现上,GaussDB(DWS)的系统表都可以做VACUUM FULL,但是会上八级锁,涉及这些系统表的业务会被阻塞。
根据数据库版本不同,建议如下:
8.1.3及以上版本
- 8.1.3及以上版本的集群,AUTO VACUUM默认是打开的(由GUC参数autovacuum控制),用户通过设置对应的GUC参数后,系统会自动触发所有系统表和用户的行存表进行VACUUM FULL,用户不需要手动执行vacuum。
- autovacuum_max_workers = 0,系统表和普通表都不会触发。
- autovacuum = off,普通表不会触发,但系统表会触发。
- 以上仅针对行存表的AUTO VACCUM触发,如果需要针对列存表做自动触发VACUUM,还需要用户在管理控制台上配置智能调度任务。具体参见运维计划。
8.1.1及历史版本
- 以下系统表在做VACUUM FULL时会影响所有业务,请选择空闲时间窗或停止业务时操作。
- pg_statistic (统计信息,建议不要清理,会影响业务查询性能)
- pg_attribute
- pgxc_class
- pg_type
- pg_depend
- pg_class
- pg_index
- pg_proc
- pg_partition
- pg_object
- pg_shdepend
- 以下系统表主要影响资源的监控和表大小的查询接口,不影响其他业务。
- gs_wlm_user_resource_history
- gs_wlm_session_info
- gs_wlm_instance_history
- gs_respool_resource_history
- pg_relfilenode_size
- 其余系统表不占用空间,通常不做清理。
- 建议日常运维活动中,每周监控以下系统表的大小,如果一定要回收这些空间,优先根据系统表的大小进行清理,抓主要矛盾。
父主题: 数据库使用
数据库使用 所有常见问题
- 如何调整分布列?
- 如何查看和设置数据库的字符集编码格式
- 如何处理建表时date类型字段自动转换为timestamp类型的问题?
- 是否需要定时对常用的表做VACUUM FULL和ANALYZE操作?
- GaussDB(DWS)数据库设置主键后还需要设置分布键吗?
- GaussDB(DWS)是否兼容PostgreSQL的存储过程?
- 如何理解分区表、数据分区和分区键?
- 如何导出某张表结构?
- 是否有高效的删除表数据的方法?
- 如何查看外部表信息?
- 如果建表时没有指定分布列,数据会怎么存储?
- 如何将联结查询的null结果替换成0?
- 如何查看表是行存还是列存?
- GaussDB(DWS)列存表的常用信息查询
- GaussDB(DWS)查询时索引失效场景解析
- 如何使用自定义函数改写CRC32()函数
- 以pg_toast_temp*或pg_temp*开头的Schema是什么?
- GaussDB(DWS)查询时结果不一致的常见场景和解决方法
- 哪些系统表不能做VACUUM FULL
- 语句处于idle in transaction状态常见场景
- GaussDB(DWS)如何实现行转列及列转行?
- 唯一约束和唯一索引有什么区别?
- 函数和存储过程有什么区别?
- 如何删除重复的表数据?
more