文件名称:维护水平分区表-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2024-06-29 04:38:57
达梦,DM7
19.4 在水平分区表建立索引 DM7支持对水平分区表建立普通索引、唯一索引、聚集索引和函数索引。创建索引时若 未指定 GLOBAL 关键字则建立的索引是局部索引,即每一个表分区都有一个索引分区,并 且只索引该分区上的数据。如果指定了 GLOBAL 关键字则建立的索引是全局索引,即每个 表分区的数据都被索引在同一个 B 树中。目前,仅堆表的水平分区表支持 GLOBAL 全局索 引。 例如,在 sales表上的 saledate上建立索引。 CREATE INDEX ind_sales_saldate ON sales(saledate); CREATE UNIQUE INDEX ind_sales_city ON sales(city); 对于非全局索引而言,建立分区索引后,每一个分区子表都会建立一个索引分区,负责 索引分区子表的数据。由于每个索引分区只负责索引本分区上的数据,其他分区上的数据无 法维护。因此,当对水平分区表建立非全局唯一索引时,只能建立分区键索引,即分区键必 须都包含在索引键中。只有当分区键都包含在索引键中,才能对分区主表保证索引键唯一。 全局唯一索引不受此约束。 另外,不能在水平分区表上建立局部唯一函数索引。 19.5 维护水平分区表 创建水平分区表后,DM7提供了对分区表的修改,功能包括: 1. 增加分区:建立水平分区表后,可根据实际需要新增一个分区; 2. 删除分区:建立水平分区表后,可根据实际需要删除一个分区; 3. 合并分区:将相邻的两个范围分区合并为一个分区。合并分区通过指定两个分区名 进行,将相邻的两个分区的数据进行合并,构建新的大分区。只能在范围分区上进 行合并分区; 4. 拆分分区:将某一个范围分区拆分为相邻的两个分区。拆分分区时指定的常量表达 式值必须是原范围分区的有效范围值。只能在范围分区上进行拆分分区; 5. 交换分区:将分区数据跟普通表数据交换功能,普通表必须跟分区表同构(拥有相 同的列和索引)。不支持含有加密列的分区表交换分区。 在 DM7 中,由于局部索引反映基础表的结构,因此当对表的分区和子分区进行修改操 作时,会自动地对局部索引进行相应的修改。值得注意的是,组合分区表不支持修改。 19.5.1 增加分区 DM7支持用 ALTER TABLE ADD PARTITION语句将新分区增加到最后一个现存分区