SQL優化常用方法5

inzaghi1984發表於2017-12-13
  1. 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`;


相關文章