第一次发帖 如有错误希望各位大神指正
下面来介绍一下组合分区中RANGE-LIST分区的创建方法:
说明:
分区你可以抽象的理解为把一个超大的表按照某个字段分解成多个小的部分方便查询效率等,当然也是一种存储的手段;
ORACLE中有三大分区,分别为LIST(列表分区)、RANGE(范围分区)、HASH(哈希分区)
组合分区又分为10g与11g的差别:oracle10g中的组合分区(复合分区)主要有RANGE-LIST(范围列表分区)RANGE-HASH(范围哈希分区);
ORALCE11g中又新增了多个组合分区,RANGE-RANGE、LIST-RANGE、LIST-HASH和LIST-LIST;
ORACLE中的组合分区主要是针对大数据的处理数据的存储而言,一般用来封存历史数据,如果某个省中有多个地市,同时每个月也会有相应的数据,
这样这种情况下比较适合RANGE-LIST分区,
但是这种范围列表分区有一个缺陷就是:当你要删除范围列表分区中的中间的某个子分区的时候,你将无法在创建该删除过的子分区,这个需要特别的注意;
以下为一个简单地创建RANGE-LIST组合分区的例子:
create table test_partition (name_id varchar2(10),
month_id varchar2(10),
area_code varchar2(10) )
partition by range(month_id) subpartition by LIST (area_code) --指定按照账期RANGE分区 ;area_code为子分区
subpartition template( --子分区模板
subpartition P0531 values ('0531'),
subpartition P0532 values ('0532'),
subpartition P0533 values ('0533'),
subpartition P0534 values ('0534')
) (partition P201405 values less than ('201406') ) tablespace test_tablespace; --添加第一个分区并指定表空间
--子分区
--添加子分区的语句
alter tables test_partition add partition P201406 values less than ('201407');
--清空子分区的语句
--清空子分区P201405下边子分区P201405_P0531;
alter table test_paetition truncate subpartition P201405_P0531;
--删除某个子分区
alter table test_partition drop subpartition P201405_P0531;