返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

MOT VACUUM 清理
使用VACUUM 进行垃圾收集,并有选择地分析数据库,如下所示。

【Postgres】
在Postgres 中,VACUUM 用于回收死元组占用的存储空间。在正常的Postgres 操作中,
删除的元组或因更新而作废的元组不会从表中物理删除。只能由VACUUM 清理。因此,需
要定期执行VACUUM,特别是在频繁更新的表上。

【MOT 扩展】
MOT 不需要周期性的VACUUM 操作,因为新元组会重用失效元组和空元组。只有当
MOT 的大小急剧减少,并且不计划恢复到原来大小时,才需要VACUUM 操作。
例如,应用程序定期(如每周一次)大量删除表数据的同时插入新数据,这需要几天时
间,并且不一定是相同数量的行。在这种情况下,可以使用VACUUM。
对MOT 的VACUUM 操作总是被转换为带有排他表锁的VACUUM FULL。

支持的语法和限制
按规范激活VACUUM 操作。
VACUUM [FULL | ANALYZE] [ table ];
只支持FULL 和ANALYZE VACUUM 两种类型。
VACUUM 操作只能对整个MOT 进行。
不支持以下Postgres VACUUM 选项:

FREEZE

VERBOSE

Column specification

LAZY 模式(部分表扫描)

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
471
此外,不支持以下功能:

AUTOVACUUM

GBA-02DD-0016
错误码
错误标识
错误信息
GBA-02DD-001
6

Not supported options for exchanging
partition between normal distributed
table and nocopies distributed table.
错误出现原因
不允许对普通分布表和nocopies 属性的分布表进行分区交换

db2 数据库系统中创建如下表及数据:
CREATE DATABASE test
connect to test
DROP TABLE t1
CREATE TABLE t1(i int,j bigint,c char(20),v varchar(255))
INSERT INTO t1 VALUES(12,34,'ajhsa','7shuusa8us')
INSERT INTO t1(i) VALUES(89)
INSERT INTO t1 VALUES(0,90,'sniuda','djkjkdsd')
INSERT INTO t1 VALUES(109,0,' ',' ')
INSERT INTO t1 VALUES(850266,9055655988595,'iu92uijw9i218uiw9w','wjijs')
INSERT INTO t1(i,c,v) VALUES(-19982921,'s','abc')