Oracle性能优化学习笔记之WHERE子句中的连接顺序

 ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.

例如:

(低效,执行时间156.3秒)

SELECT …
FROM EMP E
WHERE  SAL > 50000
AND    JOB = ‘MANAGER’
AND    25 < (SELECT COUNT(*) FROM EMP
             WHERE MGR=E.EMPNO);

(高效,执行时间10.6秒)

SELECT …
FROM EMP E
WHERE 25 < (SELECT COUNT(*) FROM EMP
             WHERE MGR=E.EMPNO)
AND    SAL > 50000
AND    JOB = ‘MANAGER’;

小注:

本文摘自百度文库,具体链接木有找到,抱歉。

时间: 2024-08-06 11:37:47

Oracle性能优化学习笔记之WHERE子句中的连接顺序的相关文章

Oracle性能优化学习笔记之选择最有效率的表名顺序

选择最有效率的表名顺序(只在基于规则的优化器中有效)  ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中

Web应用程序性能优化学习笔记

Web应用程序性能优化学习笔记 1. 使用瀑布图初步诊断网站性能瓶颈 一般来说,打开一个网页的速度会受到以下几项的影响: 1) 服务器花了太长的时间将.aspx页面的内容转化为html. 2) .aspx页面花了太长的时间从服务器端将内容发送到客户端. 3) 页面上的图片或者flash文件花了太长的时间从服务器端发送到客户端. 4) JavaScript和CSS文件阻塞页面渲染. 我们可以使用“瀑布图”来确定一个页面的性能问题是由于哪一项造成的.FireBug.Chrome自带的“开发人员工具”

kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记

本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6.x系列操作系统下KVM优化的点,有很多都是默认支持开启了的,除了采用virtio方式的磁盘IO,与网络IO接口优化之外,其它真是无需太多优化. 1. CPU性能优化 (1) 服务器或宿主机主板BIOS中开启Intel Virtualization Technology(简称VT), 如果主板支持In

mysql性能优化学习笔记(1)优化目的、方向及数据库准备

前言: 最近参加面试,问到了很多关于mysql的优化方面的问题,回答的不是很好,也是因为原先做的项目流量不是很大,所以对mysql优化不是太了解,所以趁着周末,恶补一下. 本文来源于慕课网sqlercn老师所讲的<性能优化之mysql优化>,根据老师所讲的内容整理所得. 一.为什么需要优化mysql数据库  1.避免出现页面访问错误          由于数据库连接超时产生的5xx错误          由于慢查询造成页面无法加载          由于阻塞造成数据无法提交       2.增

php性能优化学习笔记

编写代码 1.尽可能多的使用内置函数2.比对内置函数的时间复杂度,选择复杂度低的 比如 循环20万次-测试isset 和 array_key_exists 耗时 对比isset.php , array_key_exists.php3.尽可能少用魔法函数 对比__get.php no__get.php4.不好不用@错误抑制符号 查看at.php , 利用vlb扩展查看opcode 1 cli: php -dvld.active=1 -dvld.execute=0 at.php 查看opcode 2

PHP性能优化学习笔记--PHP周边性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

PHP一般运行于Linux服务器中,周边主要包括:Linux运行环境.文件存储.数据库.缓存.网络 常见PHP场景的开销次序: 读写内存<<读写数据库(使用内存作为缓存.异步处理)<<读写磁盘<<读写网络数据(网络延迟) 尽量操作内存和数据库,避免操作磁盘和网络数据,一定要避免读取大文件 一.优化网络请求: 可能存在的问题: 1.对方接口的不确定性因素 2.网络稳定性 优化网络请求措施: 1.设置超时时间(数字可以根据自己项目实际情况进行调整) a.连接超时:200ms

DOM编程性能优化学习笔记

参考高性能javascript  javascript编程全解 1)DOM 文档对象模型是一种操作xml和html文档的接口(API),我们可以通过javascript(ECMAScript)访问DOM,访问或者修改DOM的时候会产生开销,接下来讨论如何减少这方面的开销 这里面想到了几种方案 1)减少DOM的访问次数 使用局部变量 2)创建新的节点的时候 clone已经存在的节点  使用能区分元素节点和其他节点的属性  使用选择器API(这3种优化了方法,使用了不同于之前的方法) 3)最小化重绘

PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

使用ab进行压力测试 ab -n行数 -c并发数 url 重点关注下面两点: 1.Request per secend : 每秒可接收的请求数 2.Time per request : 每次请求所耗费的时间 优化1.多使用PHP自身的功能(如PHP定义的函数.常量),尽量少自己造轮子,自己写的代码冗余较多,可读性不高,且性能低下 PHP每次接受请求后,都会进行编译成底层语言,C->汇编->机器语言,同时接受大量请求,每个请求都会执行一次编译 示例代码如下: bad.php          

mysql性能优化学习笔记(6)数据库配置优化&amp;硬件优化

一.操作系统配置优化:          1. 网络方面,修改/etc/sysctl.conf文件,增加tcp支持的队列数,减少断开连接时,资源的回收.          2. 打开文件数的限制.修改/etc/security/limits.conf文件,增加一下内容以修改打开文件数量的限制.          3. 关闭iptables,selinux等防火墙软件. 二.系统配置优化     innodb_buffer_pool_size——建议为总内存的75%     innodb_buff