0
책에서 제공된 상관 된 하위 쿼리의 예는 다음과 같습니다.주어진 코드에 대한 하위 쿼리와 상관 된 하위 쿼리 간의 차이점
2 월 12 주문을하는 고객 2007
SELECT custid, companyname
FROM Sales.Customers AS C
WHERE EXISTS
(SELECT *
FROM Sales.Orders AS O
WHERE O.custid = C.custid
AND O.orderdate = '20070212');
을하지만, 나는 모두 동일한 출력을 제공 간단한 하위 쿼리
SELECT custid, companyname
FROM Sales.Customers
WHERE custid IN
(SELECT [custid] FROM [Sales].[Orders]
WHERE [orderdate] ='20070212')
를 사용하여 동일한 목적을 위해 다음과 같은 코드를 썼습니다. 어떤 방법이 더 낫습니까? 그리고 왜? 그리고 내가 SQL 서버에 내 자신의 데이터에 유사한 쿼리를 시도
여기서 읽을 수 있습니다 (http://stackoverflow.com/questions/2065329/sql-server-in-vs-exists-performance), 사용중인 SQL Server 버전에 따라 성능이 다를 수 있습니다. 답과 의견에서 읽을 수 있듯이 2008 년 현재 옵티마이 저는 IN과 EXISTS를 동일하게 취급합니다. –
EXISTS는 select가 행을 반환하면 EXISTS가 TRUE로 평가되고 그렇지 않으면 FALSE로 평가됩니다. 가장 효율적일 수있는 방법이 가장 좋습니다.) 다르게 수행 된 작업을 확인하려면 쿼리 실행 계획을 연구해야합니다. 동일한 실행 계획을 얻는 것이 좋을 수도 있습니다. 이는 두 쿼리가 동일하다는 것을 의미합니다. –