分区索引分时间段进行建立

今天在itpub上看到一个哥们提出想分时间段建立分区,于是进行了如下实验,证明是可以进行的::
[oracle@localhost ~]$ sqlplus /nolog


SQL*Plus: Release 11.2.0.4.0 Production on 星期三 8月 6 16:12:25 2014


Copyright (c) 1982, 2013, Oracle.  All rights reserved.


SQL> conn change/change
Connected.
SQL> 
SQL> 
SQL> 
SQL> CREATE TABLE range_example
  2  (range_key_column date ,
  3   data varchar2(20)
  4  )
  5  PARTITION BY RANGE (range_key_column)
  6  ( PARTITION part_1 VALUES LESS THAN  (to_date('01/01/2012','dd/mm/yyyy')),
  7    PARTITION part_2  VALUES LESS THAN (to_date('01/01/2013','dd/mm/yyyy')),
  8    PARTITION part_3 VALUES LESS THAN  (MAXVALUE)
  9  );


Table created.


SQL>  insert into range_example (range_key_column,data) values(to_date('15-12-2012 00:00:00','dd-mm-yyyy hh24:mi:ss'),'application data');


1 row created.


SQL> insert into range_example (range_key_column,data) values(to_date('31-12-2012 23:59:59','dd-mm-yyyy hh24:mi:ss'),'application data');


1 row created.


SQL>  insert into  range_example (range_key_column,data) values(to_date('15-12-2011 00:00:00','dd-mm-yyyy hh24:mi:ss'),'application data');


1 row created.


SQL>  insert into  range_example (range_key_column,data) values(to_date('31-12-2011 23:59:59','dd-mm-yyyy hh24:mi:ss'),'application data');


1 row created.


SQL> commit;


Commit complete.


SQL>  select * from range_example;


RANGE_KEY_CO DATA
------------ ------------------------------------------------------------
15-12月-11   application data
31-12月-11   application data
15-12月-12   application data
31-12月-12   application data




SQL>  CREATE INDEX idx_range_example ON range_example (range_key_column)  LOCAL (PARTITION part_1 UNUSABLE, PARTITION part_2,PARTITION part_3);


Index created.




SQL>  SELECT INDEX_NAME AS "INDEX OR PARTITION NAME", STATUS
  2    FROM USER_INDEXES
  3   WHERE INDEX_NAME = 'IDX_RANGE_EXAMPLE'
  4  UNION ALL
  5  SELECT PARTITION_NAME AS "INDEX OR PARTITION NAME", STATUS
  6    FROM USER_IND_PARTITIONS
  7   WHERE PARTITION_NAME LIKE '%PART_%';


INDEX OR PARTITION N STATUS
-------------------- ------------------------
IDX_RANGE_EXAMPLE    N/A
PART_1               UNUSABLE
PART_2               USABLE
PART_3               USABLE



SQL>   SELECT p.PARTITION_NAME,
  2           p.STATUS AS "PART_STATUS",
  3           p.SEGMENT_CREATED AS "SEG_CREATED" 
  4      FROM USER_IND_PARTITIONS p, USER_SEGMENTS s
  5     WHERE s.SEGMENT_NAME = 'IDX_RANGE_EXAMPLE';


PARTITION_ PART_STATUS              SEG_CREAT
---------- ------------------------ ---------
PART_1     UNUSABLE                 NO
PART_3     USABLE                  YES
PART_2     USABLE                 YES



SQL> alter index IDX_RANGE_EXAMPLE rebuild partition  PART_1 nologging parallel;


Index altered.


SQL>  
SQL>  SELECT INDEX_NAME AS "INDEX OR PARTITION NAME", STATUS
  2    FROM USER_INDEXES
  3   WHERE INDEX_NAME = 'IDX_RANGE_EXAMPLE'
  4  UNION ALL
  5  SELECT PARTITION_NAME AS "INDEX OR PARTITION NAME", STATUS
  6    FROM USER_IND_PARTITIONS
  7   WHERE PARTITION_NAME LIKE '%PART_%';


INDEX OR PARTITION N STATUS
-------------------- ------------------------
IDX_RANGE_EXAMPLE    N/A
PART_1                USABLE
PART_2               USABLE
PART_3               USABLE

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10701850/viewspace-1246665/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10701850/viewspace-1246665/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值