将未分段表连接在一起

将两个未分段的表组合成一个分段的表时,可以利用 ALTER FRAGMENT ATTACH 操作的性能优势。

例如:假设您用以下 SQL 语句创建两个未分段表和索引:
CREATE TABLE tb1(a int) IN db1; 
      CREATE INDEX idx1 ON tb1(a) in db1;
CREATE TABLE tb2(a int) IN db2; 
      CREATE INDEX idx2 ON tb2(a) in db2;
您可能想要用以下简单分布方案将这两个未分段表组合起来:
ALTER FRAGMENT ON TABLE tb1 
      ATTACH 
            tb1 AS (a <= 100),
            tb2 AS (a > 100);
如果在 tb1tb2 的分段之间不发生数据迁移,那么 数据库服务器会用以下分段存储策略重新定义索引 idx1
CREATE INDEX idx1 ON tb1(a) F
   FRAGMENT BY EXPRESSION
            a <= 100 IN db1,
            a > 100 IN db2;
要点: 此行为导致对于数据库服务器早于 V7.3V9.2 的版本,会使用不同的分段存储策略。 在更早的版本中,ALTER FRAGMENT ATTACH 语句在数据库空间 db1 中创建了未分段的拆离索引。