oracle分区表执行计划分区合并,利用ORACLE分区技术提高管理和性能_PART2

接PART1:http://blog.chinaunix.net/uid/7655508.html

11g interval分区:

1)11g之前创建日期范围分区,经常是预先创建一部分,等即将用完重新增加,如果一开始分区加了max分区,则还需要split,在管理上是非常麻烦的。

2)11g

interval分区彻底解决了这个麻烦,它支持DATE/TIMESTAMP/NUMBER类型的分区,按照指定格式,根据插入的数据动态创建分区,不需要人工add分区,提高了管理和维护效率。

aaaab332ddee7c70c16183f636fc0fe8.png

7f3d2a798b676d3ec05641805d3e5830.png

11g虚拟列分区:

1)11g之前,如果需要按照列的函数运算进行分区,除非额外增加一列,否则无法实现。

2)11g支持虚拟列进行分区,增强了分区的功能,比如按照日期的月份1-12每年12个分区,循环使用,则可以采用本例子的方式进行分区。

3)虚拟列分区只支持内置函数,不支持自定义函数。

712811d9c5d1790b288d683324108a03.png

fb224e5e9457e2e2945aaaa3da0cfdad.png

分区pruning及其注意点:

1)Partition

pruning是分区的重要特性,它可以根据where条件中的分区键的范围,查找需要的分区,避免不必要的分区扫描,从而提高效率。

2)Partition

pruning根据分区键的查询条件,分为静态pruning和动态pruning,其中静态pruning在执行计划中的Pstart和Pstop显示具体分区范围,动态pruning显示KEY。

89294689db87a06265aa24a4e70f6b59.png 

8c54e92d53a962edd7e4da2e4687fa5b.png

3)正确的静态分区pruning和索引的使用类似,不要对分区键进行运算或者使用函数,分区的范围条件类型应该与分区键一致,避免对分区键隐式类型转换。

e0fcf64ca67196db69af548f81d0aa25.png

分区索引类型:

326a5b054f2ba022d16c50f2f6c42806.png 

c66246ef13773aaaa6bd4a8226331781.png 

1)Local

partition index是随表对索引完成相应的分区,每个表分区都有一个索引分区,而且只索引该分区,分区表尽量使用局部分区索引。它分为前缀和非前缀局部分区索引,分区数目与表分区数目一致。

2)Global

partition index是按区间对索引进行分区,一个索引分区可对应多个(或所有)表分区,分区数目可以和表分区数目不一致。

28024fe3cb30d30c7b99dbca3b6bed35.png 

e5e177100369734a09ef50371d42bf19.png

分区索引选择策略:

?OLTP系统中的建议

–Global和unique local index性能优于

nonunique local index

–Local index提供了更好的可用性

?数据仓库系统中的建议

–Local index更适合于数据装载和分区维护

–在大量数据统计时,能充分利用Local index并行查询能力

?在性能、高可用性和可管理性之间进行平衡

b6161f65819257ed6ebfd6247f7322b2.png

分区索引注意点:

当对分区进行move、splite、truncate、drop等DDL 操作时,Global partition index会失效,最好加上update global indexes。

ce383ac334fd34cc081bcec1373899dd.png

a824b05d28c93efa081f2187dfb3b682.png

分区表设计原则:

1)表的大小:当表的大小超过2GB,或对于OLTP系统,表的记录超过1000万,持续增长,都应考虑对表进行分区。

2)数据访问特性:基于表的大部分查询应用,只访问表中少量的数据。对于这样表进行分区,可充分利用分区排除无关数据查询的特性。

3)数据维护:按时间段删除成批的数据,例如按月删除历史数据。对于这样的表需要考虑进行分区,以满足维护的需要。

4)数据备份和恢复:

按时间周期进行表空间的备份时,将分区与表空间建立对应关系。

5)只读数据:如果一个表中大部分数据都是只读数据,通过对表进行分区,可将只读数据存储在只读表空间中,对于数据库的备份是非常有益的。

6)并行数据操作:对于经常执行并行操作(如Parallel Insert,Parallel Update等)的表应考虑进行分区。

7)表的可用性:当对表的部分数据可用性要求很高时,应考虑进行表分区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值