Oracle 跨表分区查询

本文探讨了Oracle数据库中不同分区策略对于查询性能的影响。通过对比分析,指出在跨分区查询时,按天分区相较于按固定周期分区能提供更好的查询效率。

http://zhidao.baidu.com/link?url=YlYCmxEotAgyflDtzMIYTMuh9TLhDJ7pCnmsrebUlD1-0xZ6MTftwtfBVqcXS4K-TPo6Yzm0KortMSSIbtPvt_

Oracle 跨表分区查询,比没有表分区更慢吗?

检举|2012-04-17 21:52 IT树儿 | 分类:操作系统/系统故障 | 浏览1319次

我有一个大表,表分区是按照每天一个创建的。在使用的时候,我要查询一个时间段的数据(大概15天),也就是说需要跨15个表分区,这样查询起来比没有表分区会更慢吗?比15天创建一个表分区又怎样?求高手指点!!!

 

2012-04-18 02:10 提问者采纳
1、你这种情况,分区表上的查询比没分区的表快。
访问数据有两种方式,一是全表扫,二是先走索引、再通过索引返回的rowid访问表。
不分区表全表扫时,分区表快。分区表扫描的只是15个分区而不是全表,很显然扫描的数据量小,表里存的数据越多这个优势越明显。
不分区表走索引的时,仍然是分区表快。oracle会自动用扫描15个分区的方案来代替先索引后表这种2步的方案,由于分区后省去访问索引因此访问的数据量小,而且扫描分区是使用db file scattered read一次读多个数据块,速度比先索引后表的db file sequential read一次读一个数据块快很多,每天的数据越多这个优势越明显。
如果考虑开并行,分区表会比没分区的表快更多。

2、根据你的查询来看,我觉得15天1个分区不如1天1个分区。
比如查1号到15号15天的数据,1天1个分区需要访问1号到15号的数据;查2号到16号15天的数据,1天1个分区需要访问2号到16号的数据。
但是如果15天1个分区:
查1号到15号15天的数据,15天1个分区需要访问1号到15号的数据;查2号到16号15天的数据,15天1个分区需要访问1号到30号的数据,也就是说查询时间段跨2个分区时,比上面的方案多访问1倍的数据量,自然会慢不少。(如果每天的数据较多,15天1个分区,通过索引访问2号到16号的数据会比全扫1号到30号2个分区更慢)

===========================================================================================

http://www.life-notes.cn/228.html

 

Oracle分区表做跨分区查询

2013年9月21日 Tough HOU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值