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'))
更多精彩