自作聪明的开发

近日查看数据库执行较长的语句。发现我们这边的开发者真是厉害。顺手拈来就是hint。

开发以为仅仅要走索引就是快的,并且刚好知道index hint能够强制走索引。所以就用上了。但是走的是bitmap index full scan,把整个索引都扫描了,然后依据索引的位图转化(bitmap conversion to rowids)成rowid,再依据索引的rowid和表的rowid一一相应。从表中取得数据(table access by index rowid)。

既然是从索引中的全部rowid找到表中的全部的数据,为啥不直接扫描整个表,直接扫描整个表不是更快吗?事实上oracle也是非常聪明的。我把index  hint去掉之后。走得是全表扫描。这就对了。

读索引是单块读,回表也是单块读。一次的单块读和多块读时间上是几乎相同的,显然多块读一次扫描的块数很多其它。

我们把表当成是一本字典,通过拼音检索或者通过部首检索,可以很高速的定位某一个字在哪页。这就好比是索引扫描,通过索引。能高速定位你检索的数据在表中的位置。

假设我们要找全部的字,假如有1w个字,显然,每个字都通过检索的方式,我们要找1w次。

如果我们一页一页的找。如果一页有20个字。总共500页,我们要找500次就能找到1w个字。

显然。找500次要比找1w次要快非常多。

至于优化的话就简单了。去掉index hint就能够了。假设表大的话就加并行就ok了。

时间: 2024-11-10 01:36:59

自作聪明的开发的相关文章

初次开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、目前性能还不够好

继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-host测试,但是官方说运行环境的MONO版本至少需要3.4.1,我去年买了个表,至本文发布为止,你让我下地狱去找3.4.1吗,硬着头皮用3.4.0搞了一晚上,MAC一直停留在 httpapi.dll出错,Ubuntu Server 12.0.4 是不认其中的几个DLL包,具体哪几个也忘了,过段时间有了稳定版本再

【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置

目录(?)[-] 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总结自己所学也分享知识给大家 还是先放出待会儿的测试用图 下载和安装OpenCV SDK sources里面是源代码想查看完整的源代码需要用cmake来解包如何解包大家百度一下就可以或者下次浅墨来专门讲一讲这里就先不多说了 配置环境变量 工程包含include目录的配置 工程库lib目录的配置 链接库的配置 在Wi

我自作聪明,擅自主张的优化了jQuery选择器。

</pre><pre name="code" class="javascript">闲了一会,写篇博客. 最近项目里面,我自作聪明,擅自主张的,自我感觉的优化了一下jQuery选择器.哈哈哈~~~~ ( ﹁ ﹁ ) 我这么想的: jQuery最底层采用getById getByTagName,2.0版本之后结合最近html5的API--getByClassName. 如果没有getByClassName.将进行所搜查找className选择器

(转) 安装OpenCV:OpenCV 2.4.8或OpenCV 2.4.9 +VS 开发环境配置

因为读研期间的研究方向是图像处理,所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容.眼看自己积累到一定的程度了,于是决定开始开设这个OpenCV系列专栏,总结自己所学,也分享知识给大家. 好了,这篇文章作为OpenCV的启程篇,自然少不了先系统地介绍OpenCV开发环境的配置. 浅墨前后经历过OpenCV 2.4.6,OpenCV 2.4.7,OpenCV 2.4.8这三个版本的配置,有时候还要涉及到三个版本之间的转换,所以还是对OpenCV的配置有一定的理解的,希望自己的一

(转)OpenCV学习:OpenCV2.4.8+VS2010开发环境配置

初学OpenCV,关于OpenCV的环境配置,在网上搜索了很多方法,最后自己终于搞定了,纪念一下... 配置的过程深受一篇博文的影响,该博文讲述的十分清楚,特此转载过来,和大家分享!!!!! 本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用OpenCV版本:2.4.

android开发中遇到的问题汇总【九】

244.http请求的url含有中字符时.须要Uri编码.Uri.encoder() 245.使用androidstudio时,不知道什么原因svn不见了 Android Studio missing Subversion plugin Please make sure that the "SubversionIntegration" plugin is enabled in Preferences > Plugins 246.Error:Execution failed for

android开发中遇到的问题汇总【八】

一. 工具使用 245.使用androidstudio时,不知道什么原因svn不见了 Android Studio missing Subversion plugin Please make sure that the "SubversionIntegration" plugin is enabled in Preferences > Plugins 248.androidstudio 如何自动import用到的类或接口? For Windows/Linux, you can g

Java开发面试

有很多文章说面试相关的问题,有国内也有国外的,但是我相信不少人,特 别是新人看完后还是觉得比较虚比较泛,似乎好像懂了,但是一遇到面试还 是有些手无足措或者重复犯一些错误.本篇文章正是结合实际经验,为广大 程序员同志们写下满满的干货,让大家把握面试的关键点,找到面试的窍门 ,顺顺利利找到心仪的公司. 我认为面试是很奇妙的一件事情,在短短的一 段时间内,要让一个完全陌生的人认可你的专业能力,认可你的人品,认可 你的职业习惯等等.而同样,被面试者需要判断这是否是一家靠谱的公司, 是不是有钱,是不是适合

安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 知乎:http://www.zhihu.com/people/mao-xing-yun 写作当前博文时配套使用的OpenCV版本: 2.4.8.2.4.9.3.0   ( 2014