IN 사용시 쿼리 속도문제 0 1 2,123

by 열심히 [SQLServer] [2012.07.26 10:46:55]


MSSQL 에서 IN 을 사용하고 있습니다.
in 을 사용하는 필드는 복합 primary key  중에서 첫번째에 해당하구요
키는 col1+ col2 + col3 로 구성되어 있습니다.

where col1 in ('aaaa', 'bbbb', 'cccc') 이렇게 사용하면 빠르게 조회가 되서 나옵니다.
그런데
where col1 in (select value from 테이블)
물론 테이블에는 'aaa', 'bbbb', 'cccc' 에 해당하는 정보가 들어있습니다.

조인하는 문에 따라 상황이 그때 그때 달라지지만 속도차이가 10배가 넘게 나네요.
왜 이렇게 속도 차이가 많이 나는지 궁금합니다.
어떤걸 먼저 확인해 봐야 하는지,  좋은 방법은 없는지 문의드립니다.

by 이재현 [2012.07.26 18:45:24]

select value from 테이블 로우수가 많으면 늦어짐니다.

소트 유니크로 select value from 테이블 테이블을 디스틴트 벨류값을 먼저 뽑기 때문입니다.

select value from 테이블 범위를 줄여주는 술어가 필요할듯합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입