Greenplum 调优--VACUUM系统表

Posted xibuhaohao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Greenplum 调优--VACUUM系统表相关的知识,希望对你有一定的参考价值。

Greenplum 调优--VACUUM系统表

1、VACUUM系统表原因

Greenplum是基于MVCC版本控制的,所有的delete并没有删除数据,而是将这一行数据标记为删除,

而且update其实就是delete加insert。所以,随着操作越来越多,表的大小也会越来越大。对于OLAP

应用来说,大部分表都是一次导入后不再修改,所以不会出现这个问题。

但是对于数据字典来说,就会随着时间表越来越大,其中的数据垃圾越来越多。

2、Greenplum的VACUUM工具

Greenplum的VACUUM工具,可以回收已经删除行占据的存储空间。

语法:

vacuum table;

vacuum full table;

1)简单的vacuum table只是简单的回收空间且令其可以再次使用。可以缓解表的增长。

这个命令执行的时候,其他操作仍可以对标的读写并发操作,没有请求排他锁。

2)vacuum full执行更广泛的处理,包括跨块移动行,把表压缩到最少的磁盘块数目存储。

这个命令执行的时候,需要加排他锁。

3)PostgreSQL中,此功能是自动执行。但是Greenplum中大部分的表是不需要vacuum的,

所以vacuum的autovacuum是关闭的。

4)执行vacuum后,最好对表上的索引进行重建

以上是关于Greenplum 调优--VACUUM系统表的主要内容,如果未能解决你的问题,请参考以下文章

greenplum在执行vacuum和insert产生死锁问题定位及解决方案

Greenplum 集群性能测试

Greenplum 集群性能测试

Greenplum优化--SQL调优篇

Greenplum优化--SQL调优篇

Greenplum数据库快速调优