從oracle的資料訪問原理來分析,兩種順序的寫法,執行計畫都是一樣的,都是全表掃瞄,都要依次訪問該錶的所有資料塊,對每乙個資料塊中的行,逐一檢查是否同時符合兩個條件。所以,就不存在先過濾出多少條資料的問題。
綜上所述,where子句中條件的順序對效能沒有影響(不管是cbo還是rbo優化器模式),
注意,額外說一下,這裡只是說條件的順序,不包含表的順序。在rbo優化器模式下,表應按結果記錄數從大到小的順序從左到右來排列,因為表間連線時,最右邊的表會被放到巢狀迴圈的最外層。最外層的迴圈次數越少,效率越高。
SQL where條件順序對效能無影響
無盡空虛 經常有人問到oracle中的where子句的條件書寫順序是否對sql效能有影響,我的直覺是沒有影響,因為如果這個順序有影響,oracle應該早就能夠做到自動優化,但一直沒有關於這方面的確鑿證據。在網上查到的文章,一般認為在rbo優化器模式下無影響 10g開始,預設為rbo優化器模式 而在c...
SQL where條件的優化
原則,多數資料庫都是從 左到右的順序處理條件,把能過濾更多資料的條件放在前面,過濾少的條件放後面 sql1 select from employee where salary 1000 條件1,過濾的資料較少 and dept id 01 條件2,過濾的資料比條件1多 上面的sql就不符合我們的原則...
SQL條件的順序對資料庫效能的影響
經常有人問到oracle中的where子句的條件書寫順序是否對sql效能有影響,我的直覺是沒有影響,因為如果這個順序有影響,oracle應該早就能夠做到自動優化,但一直沒有關於這方面的確鑿證據。在網上查到的文章,一般認為在rbo優化器模式下無影響 10g開始,預設為rbo優化器模式 而在cbo優化器...