全局索引

来源:互联网 发布:淘宝举报卖家怎么举报 编辑:程序博客网 时间:2024/05/22 19:06

oracle全局分区索引通常情况下,性能非常好。在分区粒度比较细的情况下,性能甚至高于本地前缀分区索引。

之所以叫全局分区索引,是因为该索引的分区与表的分区无关。

Oracle提供了两种全局分区索引,10g之前只有全局范围分区索引,而10g之后又提供了全局哈希分区索引。与表的范围分区和哈希分区一样,全局范围分区索引需要根据字段值进行分区,因此实施和管理难度高于oracle自动进行全局哈希分区索引。但用户可通过全局范围分区索引有效控制索引项的分布。全局哈希分区索引还特别适合于在大并发量和批量数据加载(insert)的情况下,特别是使用sequence时,避免索引数据出现热块。

 

一、 全局索引-范围索引

 

  CREATE INDEX INX_FACT_GPRS_SGSN_CDR ON FACT_GPRS_SGSN_CDR(Msisdn,TIMEID) 

 compress  global partition by range(Msisdn)

    (PARTITION PART_20110815  VALUES LESS THAN (201108160000)

      ,

     PARTITION PART_20110816  VALUES LESS THAN (201108170000)

     ,

     PARTITION PART_max  VALUES LESS THAN (maxvalue)

     )

 

注:索引能分区吗?当然,全局分区-范围索引必须要指定第一个列(也即MSISDN)分区键,还必须要指定最大值。否则的话会报错。

 

 

 

一、 全局索引-哈希索引

 

  CREATE INDEX INX_FACT_GPRS_SGSN_CDR ON FACT_GPRS_SGSN_CDR(Msisdn,TIMEID) 

 compress global partition by hash(Msisdn)

    (PARTITION PART_1 ,

     PARTITION PART_2  

     )

  CREATE INDEX INX_FACT_GPRS_SGSN_CDR ON FACT_GPRS_SGSN_CDR(Msisdn,TIMEID) 

 compress global partition by hash(msisdn,timeid)

    (PARTITION PART_1 

      ,

     PARTITION PART_2  

     )

 

:哈希索引以上两种方式都可以,但是必须要把msisdn放在最前面。它也能添加分区的,如下:

 

SQL> alter index INX_FACT_GPRS_SGSN_CDR  add partition part_3;

 

Index altered

原创粉丝点击