oracle分区表的常规操作导致对索引的影响
oracle分区表目前已经很普遍的应用于我们的生产系统,但是在日常需要维护分区表的时候,一些对于分区表的基本操作的时候,我们难免会对分区表上的索引是否失效有些担心,那么今天我就带大家看下具体哪些操作会导致分区表上的索引失效。
为了控制篇幅,本次实验只针对RANGE分区,其他两种分区请有兴趣的同学自行测试哦~~~
1、分区表索引的分类
熟悉分区表的人都应该知道,oracle分区表的索引类型分为两种,一种是Local索引又称本地索引,一种是Global索引也叫全局索引。本次实验不具体介绍这两种索引对分区表访问所产生的性能问题方面的差异,只介绍一些常用的DDL操作对分区表上的索引的一些影响。
如果想要知道两种索引的性能差异,请期待下期的文章分享哦~~~~
2、针对分区表做各种DDL操作,查看对索引的影响
2.1创建分区表,并创建全局索引和分区索引
createtabletmp_test_range
(
idnumber,
id_localnumber,
namevarchar2(30),
int_datedate,
bzvarchar2(20)
)
PARTITIONBYRANGE(int_date)
--interval(numtodsinterval (1,'DAY'))
(
partitionP201511valueslessthan(to_date('20151201','yyyymmdd')),
partitionP20151201valueslessthan(to_date('20151202','yyyymmdd')),
partitionP20151203valueslessthan(to_date('20151203','yyyymmdd')),
partitionP20151204valueslessthan(to_date('20151204','yyyymmdd')),
partitionP20151205valueslessthan(to_date('20151205','yyyymmdd')),
partitionP20151206valueslessthan(to_date('20151206','yyyymmdd')),
partitionP20151207valueslessthan(to_date('20151207','yyyymmdd'))
);
向分区表中插入数据:
declare
v_datedate:=to_date('20151127','yyyy-mm-dd');
begin
forcin1..9loop
fordin1..100loop
insertintotmp_test_rangevalues(c||d,c||d,