1. 程式人生 > 實用技巧 >【Oracle Database】分割槽表管理

【Oracle Database】分割槽表管理

範圍分割槽
create table range_part_tab (id number,deal_date date,area_code number,contents varchar2(4000))
partition by range (deal_date)
(
partition p1 values less than (to_date('2020-02-01','yyyy-mm-dd')),
partition p2 values less than (to_date('2020-03-01','yyyy-mm-dd')),
partition p3 values less than (to_date('
2020-04-01','yyyy-mm-dd')), partition p4 values less than (to_date('2020-05-01','yyyy-mm-dd')), partition p5 values less than (to_date('2020-06-01','yyyy-mm-dd')), partition p6 values less than (to_date('2020-07-01','yyyy-mm-dd')), partition p7 values less than (to_date('2020-08-01','yyyy-mm-dd')), partition p8 values less than (to_date(
'2020-09-01','yyyy-mm-dd')), partition p9 values less than (to_date('2020-10-01','yyyy-mm-dd')), partition p10 values less than (to_date('2020-11-01','yyyy-mm-dd')), partition p11 values less than (to_date('2020-12-01','yyyy-mm-dd')), partition p12 values less than (to_date('2021-01-01','yyyy-mm-dd')), partition p_max values less than (maxvalue) ); insert into range_part_tab (id,deal_date,area_code,contents)
select rownum,to_date(to_char(sysdate-365,'j')+trunc(dbms_random.value(0,365)),'j'), ceil(dbms_random.value(590,599)),rpad('*',400,'*') from dual connect by rownum <=100000 列表分割槽 create table list_part_tab (id number,deal_date date,area_code number,contents varchar2(4000)) partition by list (area_code) ( partition p_591 values(591), partition p_592 values(592), partition p_593 values(593), partition p_594 values(594), partition p_595 values(595), partition p_596 values(596), partition p_597 values(597), partition p_598 values(598), partition p_599 values(599), partition p_other values (default) ); insert into list_part_tab (id,deal_date,area_code,contents) select rownum,to_date(to_char(sysdate-365,'j')+trunc(dbms_random.value(0,365)),'j'), ceil(dbms_random.value(590,599)),rpad('*',400,'*') from dual connect by rownum <=100000 雜湊分割槽 create table hash_part_tab (id number,deal_date date,area_code number,contents varchar2(4000)) partition by hash (deal_date) partitions 12; insert into hash_part_tab (id,deal_date,area_code,contents) select rownum,to_date(to_char(sysdate-365,'j')+trunc(dbms_random.value(0,365)),'j'), ceil(dbms_random.value(590,599)),rpad('*',400,'*') from dual connect by rownum <=100000 組合分割槽 create table range_list_part_tab (id number,deal_date date,area_code number,contents varchar2(4000)) partition by range (deal_date) subpartition by list (area_code) subpartition template (subpartition p_591 values(591), subpartition p_592 values(592), subpartition p_593 values(593), subpartition p_594 values(594), subpartition p_595 values(595), subpartition p_596 values(596), subpartition p_597 values(597), subpartition p_598 values(598), subpartition p_599 values(599), subpartition p_other values (default)) ( partition p1 values less than (to_date('2020-02-01','yyyy-mm-dd')), partition p2 values less than (to_date('2020-03-01','yyyy-mm-dd')), partition p3 values less than (to_date('2020-04-01','yyyy-mm-dd')), partition p4 values less than (to_date('2020-05-01','yyyy-mm-dd')), partition p5 values less than (to_date('2020-06-01','yyyy-mm-dd')), partition p6 values less than (to_date('2020-07-01','yyyy-mm-dd')), partition p7 values less than (to_date('2020-08-01','yyyy-mm-dd')), partition p8 values less than (to_date('2020-09-01','yyyy-mm-dd')), partition p9 values less than (to_date('2020-10-01','yyyy-mm-dd')), partition p10 values less than (to_date('2020-11-01','yyyy-mm-dd')), partition p11 values less than (to_date('2020-12-01','yyyy-mm-dd')), partition p12 values less than (to_date('2021-01-01','yyyy-mm-dd')), partition p_max values less than (maxvalue) ); insert into range_list_part_tab (id,deal_date,area_code,contents) select rownum,to_date(to_char(sysdate-365,'j')+trunc(dbms_random.value(0,365)),'j'), ceil(dbms_random.value(590,599)),rpad('*',400,'*') from dual connect by rownum <=100000