ORACLE SQL功能优化系列(四)

  来历:网海拾贝




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’;


6.     SELECT子句中防止运用 ‘ * ‘

当你想在SELECT子句中列出全数的COLUMN时,运用静态SQL列引用 ‘*’ 是一个方便的门径.不幸的是,这是一个希罕很是低效的门径. 实践上,ORACLE在解析的进程中, 会将’*’ 依次转换成全数的列名, 这个变乱是经过过程究诘数据字典完成的, 这意味着将耗费更多的时间.




版权声明: 原创作品,允许转载,转载时请务必以超链接编制标明文章 原始出处 、作者信息和本声明。否则将清查法令责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1976083.html