如何检测、清理Greenplum垃圾 - 阿里云HybridDB for PG最佳实践
标签
PostgreSQL , Greenplum , HDB for PG
背景
Greenplum通过多版本支持数据的删除和更新的并发和回滚,在删除数据时(使用DELETE删除),对记录的头部xmax值进行标记。在删除记录时,对记录的头部进行标记,同时插入新的版本。
这一就会导致一个问题,如果用户经常删除和插入或更新数据,表和索引都会膨胀。
PostgreSQL是通过HOT技术以及autovacuum来避免或减少垃圾的。但是Greenplum没有自动回收的worker进程,所以需要人为的触发。
如何查找膨胀的表或索引
Greenplum
1、首先要更新表的统计信息,因为接下来的两个视图是从统计信息来计算膨胀率的。
连接到所有目标库执行:
analyze;
2、查询gp_toolkit.gp_bloat_diag,膨胀较厉害的表。
U