Oracle 跨表分区查询
来源:互联网 发布:淘宝旅行 编辑:程序博客网 时间:2024/06/09 19:36
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
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个分区更慢)
Oracle分区表做跨分区查询
2013年9月21日
- Oracle 跨表分区查询
- oracle表分区查询的使用
- oracle表分区实现及查询
- oracle表空间表分区详解及oracle表分区查询使用方法
- 9.1oracle表空间表分区详解及oracle表分区查询使用方法
- oracle表空间表分区详解及oracle表分区查询使用方法
- oracle表空间表分区详解及oracle表分区查询使用方法
- oracle表空间表分区详解及oracle表分区查询使用方法
- oracle表空间表分区详解及oracle表分区查询使用方法
- oracle常用命令查询、建表、建用户、分区、表空间、函数
- Oracle表分区、索引分区
- Oracle表分区:范围分区
- Oracle.表分区:列表分区
- Oracle.表分区:复合分区
- oracle分区 前台查询条件样式
- oracle关于时间分区的查询
- ORACLE表分区
- oracle大表分区
- linux c socket之多进程任务
- asi详解
- 在程序中指定Spark和Hadoop的用户
- Effective C++笔记
- 关于python全局性解释锁(GIL)
- Oracle 跨表分区查询
- tabBarController的外观的设置
- 单例模式
- JAVA学习.JAVA集合类型Map.HashMap&TreeMap
- 7-1-3 分数拆分
- linux后台运行命令
- uboot分析第一阶段学习笔记
- Accelerated C++ Exercise 4-3
- redhat安装mysql常见问题