主要内容如下:
1)Oracle Partition的好处及其种类
2)11g Partition的一些新特性
3)Partition pruning及其注意点
4)Partition的一些原则等
分区技术的基本原理:
分区就是利用分而治之,来提高数据的管理能力和处理效率。如下图所示:
分区概述:
大数据对象
(表, 索引)被分成小物理段
当分区表建立时,记录基于分区字段值被存储到相应分区。
分区字段值可以修改。(row movement enabled)
分区可以存储在不同的表空间
分区可以有不同的物理存储参数
分区支持IOT表,对象表等
分区的效益和目标:
性能:
Select和DML操作只访问指定分区
并行DML操作
Partition-wise Join
可管理性:数据删除,数据备份
历史数据清除
提高备份性能
指定分区的数据维护操作
可用性:
将故障局限在分区中
缩短恢复时间
分区目标优先级 :
高性能
–>数据维护能力->实施难度 –> 高可用性(故障屏蔽能力)
RANGE分区:
最早、最经典的分区算法
Range分区通过对分区字段值的范围进行分区
Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等
数据管理能力强
-数据迁移
-数据备份
-数据交换
范围分区的数据可能不均匀
范围分区与记录值相关,实施难度和可维护性相对较差
ORACLE支持的分区特性:
Partition技术最重要的优化特性就是pruning(分区裁剪)。
Partition技术另一个便利性,就是在分区表管理和维护上。
在 10g
中,复合分区只支持
Range-List 和 Range-Hash,而在在
11g 中复合分区的类型大大增加,现在
Range,List,Interval
都可以作为
Top level 分区,
而 Second level 则可以是 Range,
List, Hash,
也就是在 11g 中可以有 3*3=9 种复合分区,满足更多的业务需求。
RANGE、HASH、LIST分区特点:
RANGE分区:
最早、最经典的分区算法
Range分区通过对分区字段值的范围进行分区
Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等
数据管理能力强
-数据迁移
-数据备份
-数据交换
范围分区的数据可能不均匀
范围分区与记录值相关,实施难度和可维护性相对较差
HASH分区:
基于分区字段的HASH值,自动将记录插入到指定分区
分区数一般是2的幂
易于实施
总体性能最佳
适合于静态数据
HASH分区适合于数据的均匀存储
HASH分区特别适合于PDML和partition-wise joins
HASH分区索引可用于解决热点争用问题
数据管理能力弱
HASH分区对数据值无法控制
LIST分区:
List分区通过对分区字段的离散值进行分区。
List分区是不排序的,而且分区之间没有关联关系
List分区适合于对数据离散值进行控制。
List分区具有与范围分区相似的优缺点
数据管理能力强
-List分区的数据可能不均匀
-List分区与记录值相关,实施难度和可维护性相对较差
阅读(2379) | 评论(0) | 转发(0) |