SQL優化常用方法19
- 用NOT EXISTS替代NOT IN
在子查詢中,NOT IN子句將執行一個內部的排序和合並. 無論在哪種情況下,NOT IN都是最低效的 (因為它對子查詢中的表執行了一個全表遍歷). 為了避免使用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`);
相關文章
- SQL優化常用方法11SQL優化
- SQL優化常用方法10SQL優化
- SQL優化常用方法16SQL優化
- SQL優化常用方法2SQL優化
- SQL優化常用方法5SQL優化
- SQL優化常用方法8SQL優化
- SQL優化常用方法3SQL優化
- SQL優化常用方法20SQL優化
- SQL優化常用方法18SQL優化
- SQL優化常用方法12SQL優化
- SQL優化常用方法46SQL優化
- SQL優化常用方法52SQL優化
- SQL優化常用方法33SQL優化
- SQL優化常用方法29SQL優化
- SQL優化常用方法26SQL優化
- SQL優化常用方法25SQL優化
- SQL優化常用方法39SQL優化
- SQL優化常用方法27SQL優化
- SQL優化常用方法22SQL優化
- SQL優化常用方法30SQL優化
- Oracle SQL效能優化常用方法OracleSQL優化
- Sql優化方法SQL優化
- 【NLP】常用優化方法優化
- MySQL 優化常用方法MySql優化
- MySql常用30種SQL查詢語句優化方法MySql優化
- 常用SQL語句優化技巧SQL優化
- SQL優化的方法論SQL優化
- Asp.net常用優化方法ASP.NET優化
- 網路效能優化常用方法優化
- Oracle SQL效能最佳化常用方法OracleSQL
- 達夢SQL優化方法statSQL優化
- 不懂業務的SQL優化方法SQL優化
- SQL查詢優化的方法SQL優化
- 50種方法優化SQL Server優化SQLServer
- SQL 語句的優化方法SQL優化
- 幾種常用的SQL優化工具及方法SQL優化
- 專案中常用的19條MySQL優化MySql優化
- 淺談MySQL中優化sql語句查詢常用的30種方法MySql優化