複合分割槽 (範圍-雜湊分割槽,範圍-列表分割槽)
阿新 • • 發佈:2019-01-31
首先講範圍-雜湊分割槽。先宣告一下:列表分割槽不支援多列,但是範圍分割槽和雜湊分割槽支援多列。
程式碼如下:
Sql程式碼-
create
table graderecord - (
-
sno varchar2(10), -
sname varchar2(20), -
dormitory varchar2(3), -
grade int - )
-
partition
by range(grade) -
subpartition
by hash(sno,sname) - (
-
partition p1 values less than(75) -
( -
subpartition sp1,subpartition sp2 -
), -
partition p2 values less than(maxvalue) -
( -
subpartition sp3,subpartition sp4 -
) - );
插入資料:
Sql程式碼-
insert
into graderecord values('511601','魁','229',92); -
insert
into graderecord values('511602','凱','229',62); -
insert
into graderecord values('511603','東','229',26); -
insert
into graderecord values('511604','亮','228',77); -
insert
into graderecord values('511605','敬','228',47); -
insert
into graderecord(sno,sname,dormitory) values -
insert
into graderecord values('511607','明','240',90); -
insert
into graderecord values('511608','楠','240',100); -
insert
into graderecord values('511609','濤','240',67); -
insert
into graderecord values('511610','博','240',75); -
insert
into graderecord values('511611','錚','240',60); -
insert
into graderecord values('511612','狸','244',72); -
insert
into graderecord values('511613','傑','244',88); -
insert
into graderecord values('511614','萎','244',19); -
insert
into graderecord values('511615','猥','244',65); -
insert
into graderecord values('511616','丹','244',59); -
insert
into graderecord values('511617','靳','244',95);
-
select
* from graderecord partition(p1); -
select
* from graderecord partition(p2); -
select
* from graderecord subpartition(sp1); -
select
* from graderecord subpartition(sp2); -
select
* from graderecord subpartition(sp3); -
select
* from graderecord subpartition(sp4);
分割槽p2資料如下,本例中75分之上包括75分:
子分割槽sp1:
子分割槽sp2:
子分割槽sp3:
子分割槽sp4:
說明:當資料量越來越大時,雜湊分割槽的分割槽表中資料越來越趨於平衡。
下面講範圍-列表分割槽
範圍-列表分割槽有兩種創立方式,先說說沒有模板的建立方式,這個表我要重建:
Sql程式碼-
create
table MobileMessage - (
-
ACCT_MONTH VARCHAR2(6), -- 帳期 格式:年月 YYYYMM -
AREA_NO VARCHAR2(10), -- 地域號碼 -
DAY_ID VARCHAR2(2), -- 本月中的第幾天 格式 DD -
SUBSCRBID VARCHAR2(20), -- 使用者標識 -
SVCNUM VARCHAR2(30) -- 手機號碼 - )
-
partition
by range(ACCT_MONTH,AREA_NO) subpartition by list(DAY_ID) - (
-
partition p1 values less than('200705','012') -
( -
subpartition shangxun1 values('01','02','03','04','05','06','07','08','09','10'), -
subpartition zhongxun1 values('11','12','13','14','15','16','17','18','19','20'), -
subpartition xiaxun1 values('21','22','23','24','25','26','27','28','29','30','31') -
), -
partition p2 values less than('200709','014') -
( -
subpartition shangxun2 values('01','02','03','04','05','06','07','08','09','10'), -
subpartition zhongxun2 values('11','12','13','14','15','16','17','18','19','20'), -
subpartition xiaxun2 values('21','22','23','24','25','26','27','28','29','30','31') -
), -
partition p3 values less than('200801','016') -
( -
subpartition shangxun3 values('01','02','03','04','05','06','07','08','09','10'), -
subpartition zhongxun3 values('11','12','13','14','15','16','17','18','19','20'), -
subpartition xiaxun3 values('21','22','23','24','25','26','27','28','29','30','31') -
) - )
-
insert
into MobileMessage values('200701','010','04','ghk001','13800000000'); -
insert
into MobileMessage values('200702','015','12','myx001','13633330000'); -
insert
into MobileMessage values('200703','015','24','hjd001','13300000000'); -
insert
into MobileMessage