文档介绍:广州远佳信息科技有限公司
Oracle 数据库教程
——oracle 分区表详解
一、分区表的概述:
Oracle 的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。
通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分
区是构建千兆字节数据系统或超高可用性系统的关键工具。
分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区
有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,
这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。
1、分区表的优点:
(1)由于将数据分散到各个分区中,减少了数据损坏的可能性;
(2)可以对单独的分区进行备份和恢复;
(3)可以将分区映射到不同的物理磁盘上,来分散 IO;
(4)提高可管理性、可用性和性能。
2、什么时候用分区表
(1) 单表过大,超过一定范围,建议以 g 计算表,均可考虑用分区
(2)历史数据据需要剥离的
(3)查询特征非常明显,比如是按整年、整月或者按某个范围!
3、分区表的类型
1、range 分区,按范围
2、list 分区,列举分区
3、hash 分区,根据 hash 值进行的散列分区
4、复合分区,9i 开始,Oracle 就包括了 2 种复合分区,RANGE-HASH 和 RANGE-LIST。在 11g,Oracle
一下就提供了 4 种复合分区:RANGE-RANGE、LIST-RANGE、LIST-HASH 和 LIST-LIST。
二、创建分区的举例
1、range 分区
create table p_table(
obj_id number(10),
object_id number(10),
object_name varchar2(128),
owner varchar2(30),
广州远佳信息科技有限公司
object_type varchar2(19),
created date)
partition by range (obj_id)
(partition obj_id1 values less than (20000),
partition obj_id2 values less than (40000),
partition obj_id3 values less than (60000),
partition obj_id4 values less than (80000),
partition obj_id5 values less than (99999));
2、list 分区
create table l_table(
obj_id number(10),
object_id number(10),
object_name varchar2(128),
owner varchar2(30),
segment_type varchar2(19),
created date)
partition