gbase|GBASE 8s Light Append简介

Light Append 从字面上理解为轻量的追加。Light append 是一种可绕过缓冲池开销的大
数据量的以块的方式快速追加到表中的方式。如图 9.15 所示,当发生 light append 时,与
light scan 类似,不会使用 buffer pool 作为数据缓存,而会在虚拟内存段分片独立的内存区
域。同时,从图 9.15 可以看出,light append 以一种成块的方式追加到表的尾部(高水位),
即使表的前部存在可用的空间以供使用,light append 会忽略高水位之前的空间,而直接找
到表的高水位,直接开辟新的空间。如果使用不当,则总是以 light append 方式新增空间,
而 delete 释放的空间得不到使用时将会出现空间浪费的情况。
gbase|GBASE 8s Light Append简介
文章图片

自动使用 light append 的条件如下。
与 light scan 不同的是,我们没有办法强制启用 light append,只能在同时满足如下 2
个特定条件的情况下,数据库优化器自动启用。
1. Raw table
【gbase|GBASE 8s Light Append简介】即对表的操作取消日志,通过 create raw table…或者 alter table tabname type(raw);
创建或者修改为 raw table。对临时表 with no log 的情况也有效。
2. No Index
表没有任何索引。

Light append 典型应用场景如下。
1. 临时表
创建临时表时,我们采用 with no log 如 select * from tabname into temp tmp_t with no log; 。
2. 大批量数据导入
我们使用外部表 external table 和 HPL 进行数据导入时,通过 light append 方式可以大大提高数据导入的性能。

可以通过 onstat -g lap 命令来监控当前启用 light append 的情况。

    推荐阅读