继续分区表
分区表索引的使用:
分区表和一般表一样可以建立索引,分区表可以创建局部索引和全局索引。局部索引针对某个分区,全局索引针对整个表。
通常来说,OLTP系统中以建全局索引居多,OLAP则通常建本地局部索。
局部索引分区的建立:
create index idx_memberBase_memberLoginName on memberBase(memberLoginName)
local
(
partition idx_1 tablespace tb_idx,
partition idx_2 tablespace tb_idx,
partition idx_3 tablespace tb_idx);
当然也可以将每个局部索引建立到不同的表空间下,依据数据量的实际情况而定。
全局索引分区的建立。
全局索引建立时global 子句允许指定索引的范围值,这个范围值为索引字段的范围值:
示例1:
create indexidx_memberBase_memberLoginName on memberBase(memberLoginName)
globalpartition by range(memberID)
(
partitionidx_1 values less than (5000000) tablespace tb_fifc,
partition idx_2 values less than (10000000) tablespace tb_idx,
partition idx_3 values less than(maxvalue) tablespace tb_idx
);
示例2: 同样是全局索引,但是索引表中的数据存放在一起
create index idx_memberBase_memberLoginName on memberBase(memberLoginName)tablespace tb_idx
分区表的维护:
增加一个分区,增加一个分区的时候,增加的分区的条件必须大于现有分区的最大值。
示例:
altertable memberBase
addpartition part_04 values less than(15000000) tablespace tb_mb04;
合并一个分区:
alter table memberBasemerge partitions part_01,part_02 into partition part_02;
在本例中将原有的表的part_01分区和part_02分区进行了合并,合并后的分区为part_02,如果在合并的时候
把合并后的分区定为 part_01的时候,系统将提示越界错误。
删除分区:
altertable memberBase drop partition part_03;
删除分区表的一个分区后,查询该表的数据时显示,该分区中的数据已全部丢失,所以执行删除分区动作时要慎重,确保先备份数据后再执行,或将分区合并。