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

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

ORACLE PERFORMANCE SQL TUNING

2024-08-29 13:36:02
字體:
供稿:網(wǎng)友
       建議使用者,親自測試后再使用,不要盲目使用下面的方法和建議!        17. 使用表的別名(Alias)        當在SQL語句中連接多個表時, 請使用表的別名并把別名前綴于每個Column上.這樣一來,就可以減少解析的時間并減少那些由Column歧義引起的語法錯誤.       (譯者注: Column歧義指的是由于SQL中不同的表具有相同的Column名,當SQL語句中出現(xiàn)這個Column時,SQL解析器無法判定這個Column的歸屬)       18. 用EXISTS替代IN       在許多基于基礎(chǔ)表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯(lián)接.在這種情況下, 使用EXISTS(或NOT EXISTS)通常將提高查詢的效率.       低效:       SELECT *        FROM EMP (基礎(chǔ)表)       WHERE EMPNO > 0       AND DEPTNO IN (SELECT DEPTNO        FROM DEPT        WHERE LOC = ‘MELB’)       高效:       SELECT *        FROM EMP (基礎(chǔ)表)       WHERE EMPNO > 0       AND EXISTS (SELECT ‘X’        FROM DEPT        WHERE DEPT.DEPTNO = EMP.DEPTNO       AND LOC = ‘MELB’)       (譯者按: 相對來說,用NOT EXISTS替換NOT IN 將更顯著地提高效率,下一節(jié)中將指出)       19. 用NOT EXISTS替代NOT IN       在子查詢中,NOT IN子句將執(zhí)行一個內(nèi)部的排序和合并. 無論在哪種情況下,NOT IN都是最低效的 (因為它對子查詢中的表執(zhí)行了一個全表遍歷). 為了避免使用NOT IN ,我們可以把它改寫成外連接(Outer Joins)或NOT EXISTS.       例如:       SELECT …       FROM EMP       WHERE DEPT_NO NOT IN (SELECT DEPT_NO        FROM DEPT        WHERE DEPT_CAT=’A’);       為了提高效率.改寫為:       (方法一: 高效)       SELECT ….       FROM EMP A,DEPT B       WHERE A.DEPT_NO = B.DEPT(+)       AND B.DEPT_NO IS NULL       AND B.DEPT_CAT(+) = ‘A’       (方法二: 最高效) ---可以采用       SELECT ….
       FROM EMP E       WHERE NOT EXISTS (SELECT ‘X’        FROM DEPT D       WHERE D.DEPT_NO = E.DEPT_NO       AND DEPT_CAT = ‘A’);

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 葫芦岛市| 白银市| 休宁县| 惠安县| 岳普湖县| 白沙| 防城港市| 嘉义县| 建宁县| 永定县| 平果县| 丰宁| 灌南县| 盈江县| 张家川| 阿尔山市| 新干县| 兴化市| 江津市| 白城市| 湖口县| 双峰县| 延川县| 建平县| 兴业县| 宁强县| 耒阳市| 绍兴县| 阿克陶县| 体育| 河曲县| 陵川县| 望江县| 合水县| 五原县| 临夏市| 樟树市| 临泉县| 辉县市| 巢湖市| 凤山市|