global partition index
local partition index
《全局分区索引》
drop table JS_SKSKJDK_DZFPMX02 purge;
--创建分区表 jssj
SQL> create table JS_SKSKJDK_DZFPMX02(
fpdm VARCHAR2(12) not null,
fphm VARCHAR2(8) not null,
jssj DATE,
CONSTRAINT PK_JS_SKSKJDK_DZFPMX02 PRIMARY KEY(FPHM,FPDM)
USING INDEX TABLESPACE users
)
PARTITION BY RANGE(JSSJ)
(PARTITION p01 VALUES LESS THAN(to_date('2016/8/31 10:53:40','yyyy-mm-dd hh24:mi:ss')) TABLESPACE users) enable row movement;
Table created.
--创建全局分区索引
drop index ind_jssj02;
SQL> create index ind_jssj02 on JS_SKSKJDK_DZFPMX02(jssj) global
partition by range (jssj)
(
partition p02 values less than (to_date('2016/10/30 10:53:40','yyyy-mm-dd hh24:mi:ss')) ,
partition p03 values less than (to_date('2016/11/30 10:53:40','yyyy-mm-dd hh24:mi:ss')),
partition p04 values less than (to_date('2016/12/3 10:53:40','yyyy-mm-dd hh24:mi:ss')),
partition p05 values less than (to_date('2016/12/30 10:53:40','yyyy-mm-dd hh24:mi:ss')),
partition pmax values less than (maxvalue)
) ;
Index created.
-- 为分区表新增分区
SQL> alter table JS_SKSKJDK_DZFPMX02 add partition p02 values less than (to_date('2016/10/30 10:53:40','yyyy-mm-dd hh24:mi:ss')) tablespace users;
Table altered.
SQL> alter table JS_SKSKJDK_DZFPMX02 add partition p03 values less than (to_date('2016/11/30 10:53:40','yyyy-mm-dd hh24:mi:ss')) tablespace users;
Table altered.
SQL> alter table JS_SKSKJDK_DZFPMX02 add partition p04 values less than (to_date('2016/12/3 10:53:40','yyyy-mm-dd hh24:mi:ss')) tablespace users;
Table altered.
SQL> alter table JS_SKSKJDK_DZFPMX02 add partition p05 values less than (to_date('2016/12/30 10:53:40','yyyy-mm-dd hh24:mi:ss')) tablespace users;
Table altered.
-- 将全局分区索引重建于指定的索引分区
alter index ind_jssj02 rebuild partition p04 tablespace users;
--分区表插入测试数据
SQL> insert into JS_SKSKJDK_DZFPMX02 values('1','1',sysdate);
1 row created.
SQL> insert into JS_SKSKJDK_DZFPMX02 values('2','2',sysdate);
1 row created.
SQL> insert into JS_SKSKJDK_DZFPMX02 values('3','3',sysdate);
1 row created.
--检查索引状态
SQL> select t2.locality,t1.index_name,t1.partition_name,t1.status,t1.tablespace_name
from user_ind_partitions t1, user_part_indexes t2 where t1.index_name in ('IND_JSSJ02') and t1.index_name=t2.index_name
order by index_name,partition_name;
LOCALI INDEX_NAME PARTITION_NAME STATUS TABLESPACE_NAME
------ ------------------------------ ------------------------------ -------- ------------------------------
GLOBAL IND_JSSJ02 P02 USABLE USERS
GLOBAL IND_JSSJ02 P03 USABLE USERS
GLOBAL IND_JSSJ02 P04 USABLE USERS
GLOBAL IND_JSSJ02 P05 USABLE USERS
GLOBAL IND_JSSJ02 PMAX USABLE USERS
--删除某个分区
SQL> alter table JS_SKSKJDK_DZFPMX02 drop partition p02;
Table altered.
--再次检查索引状态
SQL> select t2.locality,t1.index_name,t1.partition_name,t1.status,t1.tablespace_name
from user_ind_partitions t1, user_part_indexes t2 where t1.index_name in ('IND_JSSJ02') and t1.index_name=t2.index_name
order by index_name,partition_name;