分区表:
当一张表的数据不断累积增大,使得查询的速度变慢,业务程序性能降低。这个时候可以考虑分区表,分区表逻辑上是一张表,单表的数据文件可以放到不同的表空间下面,提高查询的速度。
分区表partition 分为list,range,hash分区以及组合分区
子分区表subpartition 分为list,range,hash以及组合分区
举例说明:
现在业务上有一张表 test,表中包涵字段id,createtime,deptno,name,city等等字段
我们在设计分区表的时候选择createtime作为范围分区,deptno作为子分区list分区
语句:
create table test_p_s (id number,createtime date,deptno number,name varchr2(20),city varchar2(20) ....... )
partition by range(createtime)
subpartition by list(deptno)
(
partition p1 values less than (to_date('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))
(subpartition s1_1 values(10) tablespace x1,
subpartition s1_2 values(20) tablespace x2),
partition p2 values less than (to_date('2016-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))
(subpartition s2_1 values(10) tablespace x1,
subpartition s2_2 values(20) tablespace x2));
增加分区表
alter table test_p_s add partition p3 values less than (to_date('2016-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))
(subpartition s3_1 values(10) tablespace x1,
subpartition s3_2 values(20) tablespace x2));