在许多基于基础表的查询中,为了知足一个条件,每每须要对另外一个表进行联接.在这种状况下, 使用EXISTS(或NOT EXISTS)一般将提升查询的效率.ide
低效:it
SELECT *class
FROM EMP (基础表)效率
WHERE EMPNO > 0基础
AND DEPTNO IN (SELECT DEPTNO查询
FROM DEPTdi
WHERE LOC = ‘MELB’)view
高效:vi
SELECT *co
FROM EMP (基础表)
WHERE EMPNO > 0
AND EXISTS (SELECT ‘X’
FROM DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO
AND LOC = ‘MELB’)
( 相对来讲,用NOT EXISTS替换NOT IN 将更显著地提升效率)