oracle本地索引定义,Oracle的本地分区索引

类似文章很多,以下是本人的试验,主要说明一点:本地分区索引的分区可以和数据的分区不在一起,也可以在一起。

drop table test_p2 cascade constraint;

create table test_p2(Names varchar2(30),age int,home varchar2(100),mail varchar2(100))

partition by range(age)

(

partition p_1 values less than(11) ,

partition p_2 values less than (21),

partition p_3 values less than(31),

partition p_4 values less than (41),

partition p_other values less than (maxvalue)

) tablespace tbs_j_fact;

create index ind_test_p2 on test_p2(names,age) tablespace tbs_j_index local;

insert into test_p2 values('lzf',32,'fj','lzfhope@163.com');

insert into test_p2 values('ssi',41,'fj','lzfhope1@163.com');

insert into test_p2 values('lxy',11,'fj','lzfhope2@163.com');

insert into test_p2 values('lhh',8,'fj','lzfhope3@163.com');

insert into test_p2 values('阿达',26,'fj','lzfhope3@163.com');

select * from test_p2

BEGIN

DBMS_STATS.gather_table_stats('JYFX','TEST_P2',cascade => TRUE,force => TRUE);

END;

select partition_name,tablespace_name,num_rows from User_Tab_Partitions where table_name='TEST_P2'

PARTITION_NAME      TABLESPACE_NAME       NUM_ROWS

------------------------------ ------------------------------ ----------

P_1                          TBS_J_FACT                       1

P_2                          TBS_J_FACT                       1

P_3                          TBS_J_FACT                       1

P_4                          TBS_J_FACT                       1

P_OTHER                  TBS_J_FACT                       1

SELECT  partition_name,tablespace_name,distinct_keys FROM USER_IND_PARTITIONS WHERE INDEX_NAME='IND_TEST_P2'

PARTITION_NAME      TABLESPACE_NAME     DISTINCT_KEYS

------------------------------ ------------------------------ -------------

P_1                          TBS_J_INDEX                         1

P_2                          TBS_J_INDEX                         1

P_3                          TBS_J_INDEX                         1

P_4                          TBS_J_INDEX                         1

P_OTHER                  TBS_J_INDEX                         1

结论:可以通过简单地加个tablespace参数指定本地分区索引和数据的分区不同分区。

实验默认的不加分区的

create index ind_test_p2_names on test_p2(names)  local;

BEGIN

DBMS_STATS.gather_table_stats('JYFX','TEST_P2',cascade => TRUE,force => TRUE);

END;

SELECT  partition_name,tablespace_name,distinct_keys FROM USER_IND_PARTITIONS WHERE INDEX_NAME='IND_TEST_P2_NAMES'

SQL> SELECT  partition_name,tablespace_name,distinct_keys FROM USER_IND_PARTITIONS WHERE INDEX_NAME='IND_TEST_P2_NAMES'

2  /

PARTITION_NAME      TABLESPACE_NAME     DISTINCT_KEYS

------------------------------ ------------------------------ -------------

P_1                          TBS_J_FACT                          1

P_2                          TBS_J_FACT                          1

P_3                          TBS_J_FACT                          1

P_4                          TBS_J_FACT                          1

P_OTHER                  TBS_J_FACT                          1

结论:如果不加参数tablespace那么默认就是和数据同个分区了。

测试:你完全可以自行指定分区,但依然可以是本地的。

create index ind_test_p2_mail on test_p2(age,mail)  local

(

partition p_1 tablespace tbs_j_fact ,

partition p_2  tablespace tbs_j_fact,

partition p_3  tablespace tbs_j_fact,

partition p_4  tablespace tbs_j_fact,

partition p_other  tablespace tbs_j_index

)

SQL> SELECT  partition_name,tablespace_name,distinct_keys FROM USER_IND_PARTITIONS WHERE INDEX_NAME='IND_TEST_P2_MAIL'

2  /

PARTITION_NAME      TABLESPACE_NAME     DISTINCT_KEYS

------------------------------ ------------------------------ -------------

P_3                          TBS_J_FACT                          1

P_4                          TBS_J_FACT                          1

P_OTHER                  TBS_J_INDEX                         1

P_1                          TBS_J_FACT                          1

P_2                          TBS_J_FACT                          1

结论:你可以各个指定下。

总论:

1)加local分区索引很方便。

2)指定或者不指定分区默认表空间都可以。

3)单独指定每个分区的表空间也可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值