本地分区索引、全局分区索引操作-完成的

--4 分别删除全局分区索引、本地分区索引的某个分区,查看 该索引的状态-----------------------

-------------------------case 1  全局分区索引-------------------------
--4.1 创建分区表
drop table sal_range cascade constraints ;
create table sal_range(n1 number) 
partition by range(n1)
(
partition range_10 values less than(11),
partition range_20 values less than(21),
partition range_30 values less than(31),
partition range_max values less than(maxvalue)
);

--4.2 插入测试数据
declare 
begin 
  for i in 1..40 loop 
    insert into sal_range values(i);
    commit;
    end loop;
    end;    

--4.3 确认表中的数据
select * from sal_range partition (range_10);
select * from sal_range partition (range_20);
select * from sal_range partition (range_30);
select * from sal_range partition (range_max);


--4.4 创建全局分区索引
create index global_ind on sal_range(n1) global
partition by range(n1)
(
partition sal_range_10 values less than(11),
partition sal_range_20 values less than(21),
partition sal_range_30 values less than(31),
partition sal_range_max values less than(maxvalue)
);

--4.5 查询对应分区索引的状态
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 ('GLOBAL_IND') and t1.index_name=t2.index_name 
order by index_name,partition_name;

--4.3 删除全局分区索引的一个分区
alter index GLOBAL_IND drop partition sal_range_20;

--4.6 再次确认对应分区索引的状态
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 ('GLOBAL_IND') and t1.index_name=t2.index_name 
order by index_name,partition_name;

--删除 分区索引sal_range_20 ,sal_range_30 变为 unusable

-------------------------case 2  本地分区索引-------------------------
--5.1 创建分区表
drop table sal_range cascade constraints ;
create table sal_range01(n1 number) 
partition by range(n1)
(
partition range_10 values less than(11),
partition range_20 values less than(21),
partition range_30 values less than(31),
partition range_max values less than(maxvalue)
);

--4.2 插入测试数据
declare 
begin 
  for i in 1..40 loop 
    insert into sal_range01 values(i);
    commit;
    end loop;
    end;    

--4.3 确认表中的数据
select * from sal_range01 partition (range_10);
select * from sal_range01 partition (range_20);
select * from sal_range01 partition (range_30);
select * from sal_range01 partition (range_max);


--4.4 创建全局分区索引
drop index local_ind
create index local_ind on sal_range01(n1) local
--partition by range(n1)
(partition sal_range_10 ,
 partition sal_range_20 ,
 partition sal_range_30 ,
 partition sal_range_max );

--4.5 查询对应分区索引的状态
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 ('LOCAL_IND') and t1.index_name=t2.index_name 
order by index_name,partition_name;

--分区表删除一个分区
alter table sal_range01 drop partition range_20;

--4.3 删除全局分区索引的一个分区
alter index LOCAL_IND drop partition sal_range_10;

--4.6 再次确认对应分区索引的状态
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 ('LOCAL_IND') and t1.index_name=t2.index_name 
order by index_name,partition_name;

--删除 分区索引sal_range_20 ,对本地分区索引没有影响
 

创建时间:2022-04-02 13:57
浏览量:0