GBase 8s ALTER FRAGMENT ON INDEX语句的示例

以下一系列的示例阐述了 ALTER FRAGMENT ON INDEX 的 INIT 、ADD 、DROP 和 MODIFY 选项。
一个示例创建了一个存储于 dbsp1 中的索引:
CREATE INDEX item_idx ON items (stock_num) IN dbsp1;
以下语句修改此索引以添加分片。值超过 50 的存储在 dbsp1、值在 51 和 80 之间的存储于 dbsp2 ,剩余的存储于 dbsp3:
ALTER FRAGMENT ON INDEX item_idx INIT
FRAGMENT BY EXPRESSION
stock_num <= 50 IN dbsp1,
stock_num > 50 AND stock_num <= 80 IN dbsp2,
REMAINDER IN dbsp3;
以下语句向该索引中添加一个新的分片:
ALTER FRAGMENT ON INDEX item_idx
ADD stock_num > 80 AND stock_num <= 120 IN dbsp4;
以下语句更改了此索引的第一个分片:
ALTER FRAGMENT ON INDEX item_idx
MODIFY dbsp1 TO stock_num <= 40 IN dbsp1;
以下语句删除了该索引 dbsp4 中的分片:
ALTER FRAGMENT ON INDEX item_idx
DROP dbsp4;
以下语句定义了一个按表达式分片的索引,其分片存储于dbspaces dbsp1 和 dbsp2 的命名的分片中:
ALTER FRAGMENT ON INDEX item_idx INIT
PARTITION BY EXPRESSION
PARTITION part1 stock_num <= 10 IN dbsp1,
PARTITION part2 stock_num > 20 AND stock_num <= 30 IN dbsp1,
PARTITION part3 REMAINDER IN dbsp2;
以下语句添加一个新的命名的分片:
ALTER FRAGMENT ON INDEX item_idx ADD
PARTITION part4 stock_num > 30 AND stock_num <= 40 IN dbsp2
BEFORE part3;
以下语句在索引 idx1 上定义了范围区间存储分布方案:
ALTER FRAGMENT ON INDEX idx2 INIT
FRAGMENT BY RANGE(c2)
INTERVAL (NUMTOYMINTERVAL(1,‘MONTH’)
PARTITION part0 VALUES < DATE(‘01/01/2007’) IN dbs0,
PARTITION part1 VALUES < DATE(‘07/01/2007’) IN dbs1,
PARTITION part2 VALUES < DATE(‘01/01/2008’) IN dbs2
上述示例中,
分片键是列 c2 的值,
间隔值是一个月,
因为不包含 STORE IN 子句,新的系统生成的区间分区将轮流存储在 dbs0 、dbs1 和 dbs2 中;
区间分片过渡值是 01/01/2008 。(这是超过最后一个用户定义分片的范围的最小值)
以下语句在索引 idx2 上定义了一个列表存储分布方案:
ALTER FRAGMENT ON INDEX idx2 INIT
FRAGMENT BY LIST(state)
PARTITION part0 VALUES (‘KS’,‘IL’) IN dbs0,
PARTITION part1 VALUES (‘CA’,‘OR’) IN dbs0,
PARTITION part2 VALUES (NULL) IN dbs1,
PARTITION part3 REMAINDER IN dbs2;
在以上列表分片示例中,
分片键是列 state 的值,
头两个分片的表达式列表是分别是两个 state 的邮政缩写字符串,
定义的行的 NULL 分片(part2)和余项分片(part3)的分片键值都不符合头两个表达式列表。

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...