oracle 表分区

一、按年分区,一年一个分区

    create table GRMC_AWST_ELE
(
  iiiii         VARCHAR2(100),
  beijingtime1 DATE
)
partition by range (beijingtime1)
(
partition P2013 values less than(to_date('2014-01-01','yyyy-mm-dd')),
partition P2014 values less than(to_date('2015-01-01','yyyy-mm-dd')),
partition P2015 values less than(to_date('2016-01-01','yyyy-mm-dd')),
partition P2016 values less than(to_date('2017-01-01','yyyy-mm-dd')),
partition P2017 values less than(to_date('2018-01-01','yyyy-mm-dd')),
partition P2018 values less than(to_date('2019-01-01','yyyy-mm-dd')),
partition P2019 values less than(to_date('2020-01-01','yyyy-mm-dd')),
partition PALL values less than(maxvalue)
)
 
二、按月自动分区,2014-5-1为一个分区,以后每个月一个分区
create TABLE TABLE1 
(
TABLE_ID NUMBER(8),
SUB_DATE DATE
)
PARTITION BY RANGE(SUB_DATE)
INTERVAL(NUMTOYMINTERVAL( 1,' MONTH'))
(
  PARTITION P1 VALUES LESS THAN(TO_DATE(' 2017-05-01',' YYYY-MM-DD'))
);
 
测试:
insert into TABLE1(TABLE_ID,SUB_DATE) values(1,sysdate)
insert into TABLE1(TABLE_ID,SUB_DATE) values(2,to_date('2017-01-01','yyyy-mm-dd'));
insert into TABLE1(TABLE_ID,SUB_DATE) values(2,to_date('2017-07-01','yyyy-mm-dd'));
SELECT *  FROM dba_segments t WHERE t.segment_name ='TABLE1';
查看分区表空间大小
SELECT *  FROM dba_segments t WHERE t.segment_name ='TABLE1';
 
备注:11g之前,维护分区需要手工。11g之后使用interval来实现自动扩展分区,简化了维护。

根据年: INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))
根据月: INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))
根据天: INTERVAL(NUMTODSINTERVAL(1,'DAY'))

 

转载于:https://www.cnblogs.com/ygkeke/p/10874151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值