a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

Oracle查!詢技巧

2019-11-02 14:25:22
字體:
來源:轉載
供稿:網友

   1.WHERE子句中的連接順序:ORACLE采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾. 2.SELECT子句中避免使用 ‘ *’:ORACLE在解析的過程中, 會將'*' 依次轉

  1. WHERE子句中的連接

天龍影院[www.aikan.tv/special/tianlongyingyuan/]
順序:ORACLE采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾.

  2. SELECT子句中避免使用 ‘ *’:ORACLE在解析的過程中, 會將'*' 依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味著將耗費更多的時間

  3. 使用DECODE函數來減少處理時間:使用DECODE函數可以避免重復掃描相同記錄或重復連接相同的表.

  4. 用TRUNCATE替代DELETE:當刪除表中的記錄時,在通常情況下, 回滾段(ROLLBACK SEGMENTS ) 用來存放可以被恢復的信息. 如果你沒有COMMIT事務,ORACLE會將數據恢復到刪除之前的狀態(準確地說是恢復到執行刪除命令之前的狀況) 而當運用TRUNCATE時, 回滾段不再存放任何可被恢復的信息.當命令運行后,數據不能被恢復.因此很少的資源被調用,執行時間也會很短. (譯者按: TRUNCATE只在刪除全表適用,TRUNCATE是DDL不是DML)

  5. 盡量多使用COMMIT:只要有可能,在程序中盡量多使用COMMIT, 這樣程序的性能得到提高,需求也會因為COMMIT所釋放的資源而減少:

  COMMIT所釋放的資源:

   回滾段上用于恢復數據的信息.

   被程序語句獲得的鎖

   REDO LOG BUFFER 中的空間

   ORACLE為管理上述3種資源中的內部花費

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

  7. 用EXISTS替代IN、用NOT EXISTS替代NOT IN:在許多基于基礎表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯接.在這種情況下, 使用EXISTS(或NOT EXISTS)通常將提高查詢的效率. 在子查詢中,NOT IN子句將執行一個內部的排序和合并. 無論在哪種情況下,NOT IN都是最低效的 (因為它對子查詢中的表執行了一個全表遍歷). 為了避免使用NOT IN ,我們可以把它改寫成外連接(OUTER JOINS)或NOT EXISTS.

  例子:

  高效:

  SELECT * FROM EMP (基礎表) WHERE EMPNO > 0 AND EXISTS (SELECT ‘X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB')

  低效:

  SELECT * FROM EMP (基礎表) WHERE EMPNO > 0 AND DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB')

  8. 用EXISTS替換DISTINCT:當提交一個包含一對多表信息(比如部門表和雇員表)的查詢時,避免在SELECT子句中使用DISTINCT. 一般可以考慮用EXIST替換, EXISTS 使查詢更為迅速,因為RDBMS核心模塊將在子查詢的條件一旦滿足后,立刻返回結果。

  例子:

  低效:

  SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D , EMP E

  WHERE D.DEPT_NO = E.DEPT_NO

  高效:

  SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT ‘X'

  FROM EMP E WHERE E.DEPT_NO = D.DEPT_NO);

  9. SQL語句用大寫的;因為ORACLE總是先解析SQL語句,把小寫的字母轉換成大寫的再執行;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩亚洲国产 | 欧美色综合天天久久综合精品 | 欧美一区二区三区四区在线观看 | av香港经典三级级 在线 | 亚洲免费在线视频 | 做爱网站 | 99福利| 自拍亚洲 | 成人国产精品入麻豆 | 欧美14一18处毛片 | 午夜影院网站 | 日韩成人一区二区 | 成人欧美一区二区三区白人 | 一级大片av | 中文字幕不卡 | 亚洲精品久久久久avwww潮水 | 伊人激情影院 | 91精品久久久久久久久久 | 国产日韩精品一区二区在线观看播放 | 欧美日韩精品在线 | 狠狠操操 | 久久精品99国产精品日本 | 99亚洲国产精品 | av中文字幕在线播放 | 国产欧美日韩一区二区三区 | 日本精品在线观看 | 涩涩在线 | 国产成人一区 | 范冰冰一级做a爰片久久毛片 | 成人国产精品免费观看 | av先锋资源 | 久久久久久亚洲精品 | 久久h| 91中文字幕 | 99精品欧美一区二区三区综合在线 | 久久国产精品99国产 | 成人影院av | 欧美一区二区视频 | 国产乡下妇女做爰视频 | 羞羞视频在线观看免费 | 香蕉视频成人在线观看 |