以下一系列的示例阐述了 ALTER FRAGMENT ON INDEX 的 INIT 、ADD 、DROP 和 MODIFY 选项。
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
以下语句在索引 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;