一、分区表理论知识
oracle的分区表可以包括多个分区,每个分区都是一个独立的段,存放到不同的表空间中,查询时可以通过表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。
1.何时需要分区?
- 数据超过2G
- 历史表
2.分区表的优点
- 由于将数据分散到各个区中,减少了损坏的可能性;
- 可以对单独的分区进行备份和恢复;
- 可以将分区映射到不同的物理磁盘上,来散 IO ;
- 提高可管理性,可用性和性能
二、几种分区介绍
1.Range分区
create table pdba(
id number,
oc_date number
)
partition by range(oc_date)
(
partition p1 values less than(20141231),
partition p2 values less than(20151231),
partition p3 values less than(maxvalue)
);
select * from pdba partition(p1) t;
2.Hash分区--无法有效划分范围的表,列所在分区依据分区列的hash值自动分配
create table hashpt(
transaction_id number primary key,
item_id number not null
)
partition by hash(transaction_id)
(
partition part_01 tablespace tablespace01,
partition part_02 tablespace tablespace02
);
3.List分区--分区列只能有一个,单个分区对应值可以是多个
create table listpt(
id number(10) not null,
areacode varchar2(4)
)
partition by list(areacode)
(
partition list025 values('025'),
partition list024 values('024','034'),
partition listother values(default)
);