索引分区分为:本地(局部)索引(local index) 全局索引(global index)

来源:互联网 发布:秘鲁域名后缀 编辑:程序博客网 时间:2024/05/17 22:23

 

一 本地索引

1.普通索引

SQL > CREATE INDEX INDEX_NAME ON TABLE (COLUMN)

local

(

partition part_idx_01 tablespace index_space01,

partition part_idx_02 tablespace index_space02,

partition part_idx_03 tablespace index_space03

)

2.唯一索引 如:主键

 

SQL > CREATE UNIQUE INDEX INDEX_NAME ON TABLE (COLUMN)

local

(

partition part_idx_01 tablespace index_space01,

partition part_idx_02 tablespace index_space02,

partition part_idx_03 tablespace index_space03

)

注:主键索引和主键约束的创建与删除顺序

创建主键索引 --> 创建主键约束

删除主键约束 --> 删除主键索引

3.非表分区字段唯一索引 表分区字段:USRID

SQL > CREATE UNIQUE INDEX INDEX_NAME ON TABLE (COLUMN,USRID)

local

(

partition part_idx_01 tablespace index_space01,

partition part_idx_02 tablespace index_space02,

partition part_idx_03 tablespace index_space03

)


二 全局索引

1.范围索引

SQL > CREATE [UNIQUE] INDEX INDEX_NAME ON TABLE(COLUMN)

global partition by range(column)

(

partition part_idx_01 value less than(first range value) tablespace index_space01,

partition part_idx_02 value less than(second range value) tablespace index_space02,

partition part_idx_03 value less than(maxvalue) tablespace index_space03

)

2.散列索引

SQL > CREATE [UNIQUE] INDEX INDEX_NAME ON TABLE(COLUMN,[COLUMN2])

global partition by hash(column,[column2])

(

partition part_idx_01 tablespace index_space01,

partition part_idx_02 tablespace index_space02,

partition part_idx_03 tablespace index_space03

)


注:

1.分区字段不是主键的情况下,只可以创建全局分区索引,不可以创建本地主键分区索引.

只有分区字段为主键时才可以创建本地主键分区索引.

2.如果创建本地唯一分区索引,除指定索引字段外还要加上表分区字段.

这种索引意义不大:因为这样构成复合索引,索引改变,约束也改变了.

3.如果创建非唯一索引则不需要表分区字段.

4.创建全局分区索引后可以创建约束.


DBA查看索引分区

select * from dba_ind_partitions

USER查看索引分区

select * from user_ind_partitions

 

DBA查看索引分区类型

select * from dba_part_indexes

USER查看索引分区类型

select * from user_part_indexes