ALTER FRAGMENT 语句的 DROP 子句示例
以下示例显示了如何从循环分片列表删除一个分片。第一行显示如何删除一个索引分片,第二行显 示如何删除一个表分片。
ALTER FRAGMENT ON INDEX cust_indx DROP dbsp2; ALTER FRAGMENT ON TABLE customer DROP dbsp1;
以下每个示例删除除了有列表分片策略定义的分片。第一行显示如果删除表分片,第二行显示如何 删除索引分片。
ALTER FRAGMENT ON TABLE T2 DROP PARTITION part4;
ALTER FRAGMENT ON INDEX idx2 DROP PARTITION part4;
在以上所有的示例中,PARTITION 关键字是必需的,已删除的分片的名称为 part4 。如果索引
idx2 在表 T2 中定义,且要其具有与表 T2 相同的存储分布策略,那么第二条语句不是必需的。 因为当表分片列表被修改时,数据库服务器会自动修改要连接的索引的分片策略。如果这些分片不 为空,那么数据库服务器将把它们的数据移动到余项分片中(如果没有余项分片存在,则会返回错 误)。
以下每个示例都删除了存储系统定义区间范围分片的 dbspace (由范围区间分片策略定义)。第一 条语句删除来自表分片的存储空间的 dbspaces dbs7 和 dbs8 ,第二条语句删除了来自索引分片的 相同存储空间:
ALTER FRAGMENT ON TABLE T1 DROP INTERVAL STORE IN (dbs7, dbs8); ALTER FRAGMENT ON INDEX idx1 DROP INTERVAL STORE IN (dbs7, dbs8);
如果 idx1 是表 T1 中连接的索引,那么 PARTITION 关键字是必需的而第二条语句非必要:当修 改表分片列表时,数据库服务器会自动修改任一已连接的索引的分片策略以匹配该表已变更的策 略。如果这些分片不为空,那么数据库服务器会将来自指定 dbspace dbs7 和 dbs8 的分片移动到 其它可用 dbspace 中。




