Oracle性能优化学习笔记之WHERE子句中的连接顺序,oracle性能优化
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’;小注:本文摘自百度文库,具体链接木有找到,抱歉。
不会影响的。
推荐答案是错误的,不知道什么年代的事情了!
CBO优化器机基于代价的。
oracle会自动判断,选择率高的表作为驱动表来进行连接!
从右向左执行的
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。