国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

輕松掌握Oracle數據庫Where條件執行順序

2024-08-29 13:52:27
字體:
來源:轉載
供稿:網友
由于SQL優化起來比較復雜,并且還會受環境限制,在開發過程中,寫SQL必須必須要遵循以下幾點的原則:

1.Oracle采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾.

例如:

(低效)

SELECT … FROM EMP E WHERE SAL > 50000 AND JOB = ‘MANAGER’ AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);

(高效)

SELECT … FROM EMP E WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) AND SAL > 50000 AND JOB = ‘MANAGER’;

2.SELECT子句中避免使用’*’

當在SELECT子句中列出所有的COLUMN時,使用動態SQL列引用 ‘*’ 是一個方便的方法.可是,這是一個非常低效的方法. 實際上,ORACLE在解析的過程中, 會將’*’ 依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味著將耗費更多的時間.

3.使用表的別名(Alias)

當在SQL語句中連接多個表時, 請使用表的別名并把別名前綴于每個Column上.這樣一來,就可以減少解析的時間并減少那些由Column歧義引起的語法錯誤.

注:Column歧義指的是由于SQL中不同的表具有相同的Column名,當SQL語句中出現這個Column時,SQL解析器無法判斷這個Column的歸屬。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 自贡市| 纳雍县| 曲松县| 陈巴尔虎旗| 枣强县| 五寨县| 海盐县| 普洱| 河北区| 上杭县| 武宁县| 休宁县| 彭泽县| 凉城县| 彰化县| 谷城县| 云安县| 祁连县| 仁化县| 安徽省| 阳城县| 柘城县| 明水县| 蓬溪县| 石柱| 桃源县| 土默特右旗| 牟定县| 绥中县| 兖州市| 新晃| 宽甸| 临西县| 灵武市| 永德县| 深圳市| 肥乡县| 喜德县| 兴隆县| 青岛市| 锦屏县|