ORACLE SQL优化5.WHERE子句中的连接顺序
2011-11-21 13:36
302 查看
5.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’;
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’;
相关文章推荐
- Oracle性能优化学习笔记之WHERE子句中的连接顺序
- Oracle性能优化学习笔记之WHERE子句中的连接顺序
- oracle sql优化案例2(RBO下调整表连接的顺序)
- 关于数据库优化2——关于表的连接顺序,和where子句的前后顺序,是否会影响到sql的执行效率问题
- SQL语句执行顺序以及oracle基本查询优化
- Oracle性能优化学习笔记WHERE在连接顺序的条款
- SQL优化之针对count、表的连接顺序、条件顺序、in及exist的优化
- SQL优化之count,表的连接顺序、条件顺序,in和exist
- oracle优化器与sql查询执行顺序
- sql执行顺序及oracle优化
- Oracle 表三种连接方式使用介绍(sql优化)
- ORACLE数据库SQL优化--->Oracle表连接类型
- SQL优化之针对count、表的连接顺序、条件顺序、in及exist的优化
- SQL优化之针对count、表的连接顺序、条件顺序、in及exist的优化
- SQL中WHERE子句中的连接顺序
- Oracle SQL中表连接顺序探究
- Oracle-18-select语句初步&SQL中用算术表达式&别名的使用&连接运算符%distinct&where子句
- oracle中Where子句顺序是否对SQL性能有影响
- Oracle的HINT可以强制指定SQL的执行计划,比如选择索引、表的连接顺序以及表的连接方式等等。(转)
- Oracle 表三种连接方式使用介绍(sql优化)