返回首页

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

更新日期:2024年09月11日

服务部署......................................... 26

控制子查询拉表时是否带上distinct。
取值范围[0,1]
默认值为1,表示带distinct
取值0 代表不带distinct。

功能说明
释放被删除的数据文件所占的磁盘空间。

alter table t shrink space full;
FULL:行级回收,按行级原始顺序对DC 内有效数据进行整理,重新落盘写seg
文件。只要有删除的数据,删除数据的空间就会被回收。有效行的顺序跟回收前保
持一致,效率较低。

alter table t shrink space full block_reuse_ratio=30;
FULL
BLOCK_REUSE_RATIO:块级(DC)回收,DC 中有效数据占比大于等于设置
值时该DC 保留重用,有效数据占比低于该设置值时DC 空间进行整合,回收无效数
据空间,DC 整合后重新落盘写seg 文件,无法保证原始顺序。

alter table t shrink space;
原有语法:seg 级回收。seg 内所有数据都被删除,则该seg 文件空间回收。
语法格式
ALTER TABLE [vc_name.][database_name.]table_name SHRINK SPACE [FULL] | [FULL
BLOCK_REUSE_RATIO= num]

注意

seg 级回收,索引文件及rowid 不会被回收。

行级回收和块级回收,索引文件及rowid 会被回收。

磁盘空间回收命令仅针对表。

包含行存列的表不支持行级回收和块级回收。

如果删除数据命中所有数据,则有尾块数据的文件不被清理。

磁盘空间回收过程中需要一定的磁盘空间来备份部分元数据文件,
在没有可用空间的情况下执行该命令会报错,
这时需要手工清理一
部分空间(一般需要1G 空间)再执行该命令进行空间回收。

rebalance 实现shrink space 功能和原shrink space 功能共存,
用参数gcluster_shrink_to_rebalance 控制。
默认值0;
取值 1
打开shrink to rebalance 功能;可以提升shrink spaces 性能,
不阻塞insert select、load 等append only 类型的DML 操作,支
持对rebalance 中的表的DQL。具体参考参数配置章节该参数的说
明。
示例

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 632
示例1:释放被删除的数据文件占有的磁盘空间。
gbase> select count(*) from lineorder;
+----------+
| count(*) |
+----------+
| 6001215 |
+----------+
1 row in set (Elapsed: 00:00:00.41)

[root@rhel73-1 lineorder_n1]# pwd
/opt/gnode/userdata/gbase/ssbm/sys_tablespace/lineorder_n1
[root@rhel73-1 lineorder_n1]# ll -h
总用量 69M
-rw------- 1 gbase gbase 1.6M 9 月 28 11:32 C00000.seg.1
-rw------- 1 gbase gbase 734K 9 月 28 11:32 C00001.seg.1
-rw------- 1 gbase gbase 1.6M 9 月 28 11:32 C00002.seg.1
-rw------- 1 gbase gbase 5.8M 9 月 28 11:32 C00003.seg.1
-rw------- 1 gbase gbase 2.9M 9 月 28 11:32 C00004.seg.1
-rw------- 1 gbase gbase 24K 9 月 28 11:32 C00005.seg.1
-rw------- 1 gbase gbase 2.8M 9 月 28 11:32 C00006.seg.1
-rw------- 1 gbase gbase 31K 9 月 28 11:32 C00007.seg.1
-rw------- 1 gbase gbase 1.5M 9 月 28 11:32 C00008.seg.1
-rw------- 1 gbase gbase 5.8M 9 月 28 11:32 C00009.seg.1
-rw------- 1 gbase gbase 2.4M 9 月 28 11:32 C00010.seg.1
-rw------- 1 gbase gbase 1.2M 9 月 28 11:32 C00011.seg.1
-rw------- 1 gbase gbase 5.8M 9 月 28 11:32 C00012.seg.1
-rw------- 1 gbase gbase 5.3M 9 月 28 11:32 C00013.seg.1
-rw------- 1 gbase gbase 1.1M 9 月 28 11:32 C00014.seg.1
-rw------- 1 gbase gbase 2.2M 9 月 28 11:32 C00015.seg.1
-rw------- 1 gbase gbase 6.0M 9 月 28 11:32 C00016.seg.1

gbase> delete from lineorder where lo_orderkey<=5000000;
Query OK, 5001154 rows affected (Elapsed: 00:00:02.10)

gbase> select count(*) from lineorder;
+----------+
| count(*) |
+----------+
| 1000061 |
+----------+
1 row in set (Elapsed: 00:00:00.00

gbase> alter table lineorder shrink space full;
Query OK, 0 rows affected (Elapsed: 00:00:06.53)

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 633

[root@rhel73-1 lineorder_n1]# ll -h
总用量 12M
-rw------- 1 gbase gbase 274K 9 月 28 11:35 C00000.seg.1.B
-rw------- 1 gbase gbase 123K 9 月 28 11:35 C00001.seg.1.B
-rw------- 1 gbase gbase 268K 9 月 28 11:35 C00002.seg.1.B
-rw------- 1 gbase gbase 978K 9 月 28 11:35 C00003.seg.1.B
-rw------- 1 gbase gbase 489K 9 月 28 11:35 C00004.seg.1.B
-rw------- 1 gbase gbase 4.0K 9 月 28 11:35 C00005.seg.1.B
-rw------- 1 gbase gbase 479K 9 月 28 11:35 C00006.seg.1.B
-rw------- 1 gbase gbase 5.2K 9 月 28 11:35 C00007.seg.1.B
-rw------- 1 gbase gbase 245K 9 月 28 11:35 C00008.seg.1.B
-rw------- 1 gbase gbase 978K 9 月 28 11:35 C00009.seg.1.B
-rw------- 1 gbase gbase 394K 9 月 28 11:35 C00010.seg.1.B
-rw------- 1 gbase gbase 199K 9 月 28 11:35 C00011.seg.1.B
-rw------- 1 gbase gbase 978K 9 月 28 11:35 C00012.seg.1.B
-rw------- 1 gbase gbase 891K 9 月 28 11:35 C00013.seg.1.B
-rw------- 1 gbase gbase 186K 9 月 28 11:35 C00014.seg.1.B
-rw------- 1 gbase gbase 320K 9 月 28 11:35 C00015.seg.1.B
-rw------- 1 gbase gbase 1021K 9 月 28 11:35 C00016.seg.1.B