VACUUM回收表或B-Tree索引中已经删除的行所占据的存储空间。在一般的数据库操作里,那些已经DELETE的行并没有从它们所属的表中物理删除;在完成VACUUM之前它们仍然存在。因此有必要周期地运行VACUUM,特别是在经常更新的表上。
回收空间并更新统计信息,对关键字顺序无要求。
VACUUM [ ( { FULL | FREEZE | VERBOSE | {ANALYZE | ANALYSE }} [,...] ) ]
[ table_name [ (column_name [, ...] ) ] ] [ PARTITION ( partition_name ) | SUBPARTITION ( subpartition_name ) ];
仅回收空间,不更新统计信息。
VACUUM [ FULL [COMPACT] ] [ FREEZE ] [ VERBOSE ] [ table_name ]
[ PARTITION ( partition_name ) | SUBPARTITION ( subpartition_name ) ];
回收空间并更新统计信息,且对关键字顺序有要求。
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] { ANALYZE | ANALYSE } [ VERBOSE ]
[ table_name [ (column_name [, ...] ) ] ] [ PARTITION ( partition_name )| SUBPARTITION ( subpartition_name ) ];
回收站delta表的冗余空间,仅支持列存表。
VACUUM DELTAMERGE table_name;
FULL
选择“FULL”清理,这样可以恢复更多的空间,但是需要耗时更多,并且在表上施加了排他锁。
说明: 使用FULL参数会导致统计信息丢失,如果需要收集统计信息,请在VACUUM FULL语句中加上analyze关键字。
FREEZE
指定FREEZE相当于执行VACUUM时将vacuum_freeze_min_age参数设为0。
VERBOSE
为每个表打印一份详细的清理工作报告。
ANALYZE | ANALYSE
更新用于优化器的统计信息,以决定执行查询的最有效方法。
说明
ustore分区表在autovacuum=analyze的时候也会触发vacuum。
table_name
要清理的表的名称(可以有模式修饰)。
取值范围:要清理的表的名称。缺省时为当前数据库中的所有表。
column_name
要分析的具体的字段名称,需要配合analyze选项使用。
取值范围:要分析的具体的字段名称。缺省时为所有字段。
PARTITION
COMPACT和PARTITION参数不能同时使用。
partition_name
要清理的表的一级分区名称。缺省时为所有一级分区。
subpartition_name
要清理的表的二级分区名称。缺省时为所有二级分区
DELTAMERGE
只针对列存表,将列存表的delta table中的数据转移到主表存储上。对列存表而言,此操作受enable_delta_store和参数说明中的deltarow_threshold控制。
--在表tpcds.reason上创建索引。
openGauss=# CREATE UNIQUE INDEX ds_reason_index1 ON tpcds.reason(r_reason_sk);
--对带索引的表tpcds.reason执行VACUUM操作。
openGauss=# VACUUM (VERBOSE, ANALYZE) tpcds.reason;
--删除索引。
openGauss=# DROP INDEX ds_reason_index1 CASCADE;
openGauss=# DROP TABLE tpcds.reason;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。