国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:33日期:2023-11-05 08:14:52
由于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的歸屬。

標簽: Oracle 數據庫
主站蜘蛛池模板: 铜梁县| 延寿县| 许昌市| 克东县| 德江县| 隆化县| 莱阳市| 麻江县| 永嘉县| 甘孜县| 九寨沟县| 赤峰市| 锡林郭勒盟| 新民市| 阿尔山市| 新龙县| 苏尼特左旗| 侯马市| 炉霍县| 陕西省| 南安市| 来宾市| 霍州市| 伊宁市| 东海县| 合肥市| 大埔县| 小金县| 衡南县| 靖安县| 开封县| 达州市| 海伦市| 镇宁| 定结县| 中阳县| 阿拉善盟| 张家界市| 鄂尔多斯市| 长岛县| 剑阁县|