oracle partition和subpartition

oracle partition用法

我個人理解:partition其實就是一個分區(類似一個表,)

          過程:1)先創建好對應的表空間create tablespace tbsname datafile '文件路徑及文件名' size 500m;

                    2)在創建好對應的表create table t_test_subtemplate
(
  rec_type         varchar2(10),
  capture_time  date,
  uuid                 number
)


                    3)根據字段進行範圍分區partition by range(capture_time)//範圍分區
                                                       
(
  partition sub_10 values less than(to_date('2010-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))tabespace tbs1,//sub_10是分區名   tbs1是表空間名錶示sub_10屬於tbs1表空間
  partition sub_20 values less than (to_date('2010-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))tabespace tbs2,
)


                      4)根據字段進行列表分區subpartition by list(uuid)//列表分區

(
  partition part_201101 values less than(to_date('20110131', 'YYYYMMDD'))
);

 

oracle subpartition子分區

partition by range(capture_time)
subpartition by list(uuid)
subpartition template
(
subpartition sub_10 values(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
subpartition sub_20 values(11, 12, 13, 14, 15, 16, 17, 18, 19, 20),
subpartition sub_30 values(21, 22, 23, 24, 25, 26, 27, 28, 29, 30),
subpartition sub_40 values(31, 32, 33, 34, 35, 36, 37, 38, 39, 40),
subpartition sub_50 values(41, 42, 43, 44, 45, 46, 47, 48, 49, 50),
subpartition sub_60 values(51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
)
(
partition part_201101 values less than(to_date('20110131', 'YYYYMMDD'))
);

如上,subpartition template會建立一個子分區的模板,接下來添加分區不必指定子分區,oracle會根據模板創建子分區。
執行以下語句查看子分區情況:
select table_name, partition_name, subpartition_name from user_tab_subpartitions;

結果如下:
TABLE_NAME PARTITION_NAME SUBPARTITION_NAME
------------------------------ ------------------------------ ------------------------------
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_10
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_20
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_30
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_40
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_50
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_60

添加分區:
alter table t_test_subtemplate add partition part_201102 values less than(to_date('20110228', 'YYYYMMDD'));
再次查看子分區情況:
TABLE_NAME PARTITION_NAME SUBPARTITION_NAME
------------------------------ ------------------------------ ------------------------------
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_10
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_20
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_30
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_40
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_50
T_TEST_SUBTEMPLATE PART_201101 PART_201101_SUB_60
T_TEST_SUBTEMPLATE PART_201102 PART_201102_SUB_10
T_TEST_SUBTEMPLATE PART_201102 PART_201102_SUB_20
T_TEST_SUBTEMPLATE PART_201102 PART_201102_SUB_30
T_TEST_SUBTEMPLATE PART_201102 PART_201102_SUB_40
T_TEST_SUBTEMPLATE PART_201102 PART_201102_SUB_50
T_TEST_SUBTEMPLATE PART_201102 PART_201102_SUB_60

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章