首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle SQL 效能優化實戰(六):整合查詢、刪除重複、TRUNCATE 替代 DELETE

     編輯:Oracle 資料庫基礎

9. 整合無關簡單查詢

多個無關查詢可合併為單一查詢 (需引入 DUAL 配合外部連接),提高效率但降低可讀性,需權衡。

SELECT E.NAME, D.NAME, C.NAME
FROM CAT C, DPT D, EMP E, DUAL X
WHERE NVL('X',X.DUMMY) = NVL('X',E.ROWID(+))
  AND NVL('X',X.DUMMY) = NVL('X',D.ROWID(+))
  AND NVL('X',X.DUMMY) = NVL('X',C.ROWID(+))
  AND E.EMP_NO(+) = 1234
  AND D.DEPT_NO(+) = 10
  AND C.CAT_TYPE(+) = 'RD';

10. 最高效刪除重複記錄 (ROWID 法)

DELETE FROM EMP E
WHERE E.ROWID > (SELECT MIN(X.ROWID)
                 FROM EMP X
                 WHERE X.EMP_NO = E.EMP_NO);

11. TRUNCATE 替代 DELETE

  • DELETE:記錄於回滾段,未 COMMIT 可復原,資源消耗大
  • TRUNCATE:不記回滾段,不可復原,極少資源、極快
  • 限制:TRUNCATE 為 DDL,僅適用清空整表
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved