당연히 EXISTS를 사용하는것이 효율적입니다.
예를들어서 회원 중 한번이라도 주문했던 적이 있는 회원리스트를 본다고 할 때
SELECT *
FROM 회원테이블 WHERE EXISTS (SELECT * FROM 주문테이블 WHERE 주문테이블.아이디 = 회원테이블.아이디)
이렇게 쿼리를 했다면 특정회원이 1번 주문을 했던 1000번 주문을 했던 상관없이 주문테이블을 단 한건만 확인을 합니다.
하지만
SELECT *
FROM 회원테이블 WHERE (SELECT COUNT(*) FROM 주문테이블 WHERE 주문테이블.아이디 = 회원테이블.아이디) > 0
이렇게 쿼리를 했다면
한번만 주문을 할 경우 주문건은 한건을 COUNT 하겠지만, 1000번을 주문 한 경우 1000건 모두를 읽어서 COUNT를 하게 됩니다.
'MS-SQL' 카테고리의 다른 글
SQL2000 주의대상 대처방법 (0) | 2014.07.02 |
---|---|
SQL2008 디자인에서 컬럼변경 후 저장할 수 없을 때.. (0) | 2014.06.20 |
OPENROWSET 명령어가 되지 않을 때.. (0) | 2014.05.10 |
SQL2000 xp_cmdshell 사용하여 파일삭제 (0) | 2014.04.25 |
동적쿼리로 백업 하기 (0) | 2014.04.13 |