Oracle分区技术介绍

Oracle的分区技术基本原理
分而治之:
Oracle分区表简单而言就是将一张大表按一定规则划分为物理上的很多小表,而逻辑上仍然维持为一张大表。因此,分区表技术对应用是透明的,即对应用无需进行任何改动,就可从原来访问非分区表改为直接访问分区表。

[img]http://dl.iteye.com/upload/attachment/0082/1513/ac660cee-bb85-3915-ae9d-490a15164bdd.png[/img]

分区概述:
大数据对象 (表, 索引)被分成小物理段
当分区表建立时,记录基于分区字段值被存储到相应分区。
分区字段值可以修改。(row movement enabled)
分区可以存储在不同的表空间
分区可以有不同的物理存储参数
分区支持IOT表,对象表,LOB字段,varrays等

分区技术的效益和目标:
1)性能
Select和DML操作只访问指定分区
并行DML操作
Partition-wise Join
2)可管理性:
数据删除,数据备份
历史数据清除
提高备份性能
指定分区的数据维护操作
3)可用性
将故障局限在分区中
缩短恢复时间
4)分区目标优先级
高性能 –>数据维护能力->实施难度 –> 高可用性(故障屏蔽能力)

分区方法:
范围 --- 8
Hash --- 8i
列表 --- 9i
组合 --- 8i
[img]http://dl.iteye.com/upload/attachment/0082/1515/f93db131-30fa-304a-b3be-4c8e6ab565d8.png[/img]

范围分区例:

[img]http://dl.iteye.com/upload/attachment/0082/1517/bafd0943-14e3-3c7e-b725-a5d4a46437d1.png[/img]

范围分区特点:
最早、最经典的分区算法
Range分区通过对分区字段值的范围进行分区
Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等。
数据管理能力强
数据迁移
数据备份
数据交换
范围分区的数据可能不均匀
范围分区与记录值相关,实施难度和可维护性相对较差

Hash分区例:

[img]http://dl.iteye.com/upload/attachment/0082/1519/f5ea3f66-ecd4-3305-ab8f-0f92d07b71b8.png[/img]

Hash分区特点:
基于分区字段的HASH值,自动将记录插入到指定分区。
分区数一般是2的幂
易于实施
总体性能最佳
适合于静态数据
HASH分区适合于数据的均匀存储
HASH分区特别适合于PDML和partition-wise joins。
支持 (hash) local indexes
9i 不支持 (hash) global indexes
10g 支持(hash) global indexes HASH分区
数据管理能力弱
HASH分区对数据值无法控制

列表分区例:

[img]http://dl.iteye.com/upload/attachment/0082/1521/e861ee32-d3de-33e8-b16d-786f7461b2c5.png[/img]

列表分区特点:
List分区通过对分区字段的离散值进行分区。
List分区是不排序的,而且分区之间没有关联关系
List分区适合于对数据离散值进行控制。
List分区只支持单个字段。
List分区具有与范围分区相似的优缺点
数据管理能力强
List分区的数据可能不均匀
List分区与记录值相关,实施难度和可维护性相对较差

复合分区例:

[img]http://dl.iteye.com/upload/attachment/0082/1525/95c2e981-9961-370c-ae95-2c02063804cf.png[/img]

复合分区特点:
Oracle支持的Composite分区:
Range-Hash,Range-List
既适合于历史数据,又适合于数据均匀分布
与范围分区一样提供高可用性和管理性
更好的PDML和partition-wise joins性能
实现粒度更细的操作
支持复合 local indexes
不支持复合compositeglobal indexes

分区表的管理功能:
分区的增加(ADD)
分区的删除(DROP)
分区的合并(MERGE)
分区的清空(TRUNCATE)
分区的交换(EXCHANGE)
分区的压缩(COALESE)
分区的移动(MOVE)
分区的分离(SPLIT)
修改分区的Default Attribute
分区的更名(RENAME)

分区索引:
分区表索引的分类:
Local Prefixed index
Local Non-prefiexed index
Global Prefixed index
Non Partition Index
Global索引的分区不同与表分区
Local索引的分区与表分区相同
An index is prefixed if it is partitioned on a left prefix of the index columns.
分区表上的非分区索引等同于Global索引
Global索引必须是范围分区 --- 9i之前
Global索引可以是HASH分区 -- 10g新特性
Global索引不支持Bitmap索引
Unique索引必须是prefixed,或者包含分区字段
Local索引(non-prefixed, non-unique)可以不包含分区字段

分区索引举例:

[img]http://dl.iteye.com/upload/attachment/0082/1539/ff77401f-fca8-3f53-a140-c26f236ab148.png[/img]

分区表索引的使用:
1)OLTP系统中的建议
Global和unique local index性能优于nonunique local index
Local index提供了更好的可用性
2)数据仓库系统中的建议
Local index更适合于数据装载和分区维护
在大量数据统计时,能充分利用Local index并行查询能力
3)在性能、高可用性和可管理性之间进行平衡

分区索引选择策略:

[img]http://dl.iteye.com/upload/attachment/0082/1541/37f2ddc7-3fd1-3903-ad3c-8a8b077d3e44.png[/img]

分区索引的管理功能:
分区索引的删除(DROP)
分区索引的修改(MODIFY)
分区索引Default Attribute的修改
分区索引的重建(REBUILD)
分区索引的更名(RENAME)
分区索引的分离(SPLIT)
分区索引的Unusable
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值