以下一系列的示例阐述了 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;