文档首页> 数据仓库服务 GaussDB(DWS)> 用户指南(巴黎区域)> 常见问题> 数据库使用> 是否需要定时对常用的表做VACUUM FULL和ANALYZE操作?
更新时间:2022-07-29 GMT+08:00

是否需要定时对常用的表做VACUUM FULL和ANALYZE操作?

需要。对于频繁增、删、改的表,需要定期做vacuum full和analyze,可回收已更新或已删除的数据所占据的磁盘空间,防止因数据膨胀和统计信息不准造成性能下降。

一般情况下,对表执行完大量增、改操作后,建议进行analyze;而在对表执行过删除操作后,建议进行vacuum,一般不建议日常使用vacuum full选项,但是可以在特殊情况下使用。例如在用户删除了一个表的大部分行之后,希望从物理上缩小该表以减少磁盘空间占用。vacuum full通常要比单纯的vacuum收缩更多的表尺寸。

语法格式

--指定某张表进行分析
ANALYZE 表名;
--对数据库中的所有表(非外部表)进行分析。
ANALYZE;
--指定某张表进行VACUUM
VACUUM 表名;
--指定某张表进行VACUUM FULL
VACUUM FULL 表名;

更多语法参见《开发指南》的“VACUUM”和“ANALYZE | ANALYSE”章节。

如果执行VACUUM FULL命令后所占用物理空间无变化(未减少),请确认是否有其他活跃事务(删除数据事务开始之前开始的事务,并在VACUUM FULL执行前未结束)存在,如果有等其他活跃事务退出进行重试。