oracle根據多欄位建立分割槽表
最近有業務場景需要用多個欄位做分割槽表,資料量比較大,儲存時間也較長,經過學習與實踐,算是基本完成,以下內容為實踐樣例:
---建表語句
create table t_table
(
areacode varchar2(10),
appdate date,
text varchar(10)
)
partition by range(appdate)--根據欄位 appdate 建立主分割槽
interval(numtoyminterval(1,'MONTH')) --主分割槽按 月 自動建立分割槽
subpartition by list(areacode) --再按 地區 建立子分割槽
subpartition template( --指定明確的子分割槽資訊
subpartition sub1 values('101'),
subpartition sub2 values('201'),
subpartition sub3 values('301')
)
(
partition mainpartition1 values less than(to_date('2019-04-01','yyyy-mm-dd'))--2019年4月1日前的放入mainpartition1分割槽,之後的自動分割槽
)
---模擬寫入測試資料
insert into t_table values('101',to_date('2019-03-03','yyyy-mm-dd'),'a');
insert into t_table values('101',to_date('2019-02-03','yyyy-mm-dd'),'a');
insert into t_table values('101',to_date('2019-04-03','yyyy-mm-dd'),'a');
insert into t_table values('201',to_date('2019-03-03','yyyy-mm-dd'),'a');
insert into t_table values('201',to_date('2019-05-03','yyyy-mm-dd'),'a');
insert into t_table values('301',to_date('2019-04-01','yyyy-mm-dd'),'a');
--查詢資料
select * from t_table;

--查詢主分割槽資料
select *from t_table partition (mainpartition1);

--查詢子分割槽資料
select *from t_table subpartition (mainpartition1_sub1);

--檢視自動建立的主分割槽
select * from user_tab_partitions where table_name='T_TABLE'
