Oracle 11g 通过间隔分区实现按月创建表分区

转载自:http://blog.csdn.net/gavinloo/article/details/25137567

在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理。由于表中的数据是历史交易,故按月分区,提升查询和管理。

  由于之前对于表分区了解不多,为了实现上述功能查了很多资料,一开始的方向是通过Crontab调用Shell脚本来按月自动创建分区,或者使用Oracle的Job调用存储过程来自动创建分区。在研究上述两套方案的过程中,无意发现Oracle11g有间隔分区功能,对于使用Range分区的可以按年,月,日来自动生成分区。语法如下:

[sql]  view plain  copy
  1. CREAT TABLE TABLE1  
  2. (  
  3.    TABLE_ID NUMBER(8),  
  4.    SUB_DATE DATE,  
  5.    VALUE NUMBER(8)  
  6.   
  7. )  
  8. PARTITION BY RANGE(SUB_DATE)  
  9. INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))  
  10. (  
  11.   PARTITION P1 VALUES LESS THAN(TO_DATE('2014-05-01','YYYY-MM-DD'))  
  12. );  


2014年5月1日前的数据会放入p1分区,5月1日后的数据每月只要有数据,就会自动创建一个分区。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值