[DB] LIKE 검색 시 인덱스 사용 ASP
출처 : 야시님의 홈페이지에서
일반적으로 아래와 같이 like '%expr%' 와 같은 조건을 걸러
쿼리하면 풀스캔을 하게된다.
select * from northwind..orders
where shipaddress like '%Milton%'
이와 같이 쿼리하는 것은 거의 대부분 방법이 없다. 그러나
클러스터드 인덱스를 이용하면 결과는 틀리게 나타난다.
아래의 두 쿼리를 실행시켜보면 인덱스 seek하는 것을 알 수 있다.
select title_id, title
from pubs..titles
where title_id > ''
and title like '%Talk%'
select * from northwind..orders
where orderid > 0
and shipaddress like '%Milton%'
물리적 읽기/논리적 읽기의 양은 같다. 비용을 살펴보면...I/O비용이 1/2로 감소한 것을
볼 수 있다. 아직까지 대량의 데이타에서 실험해보지는 않았으나 이를 이와 같은 방식은
활용도가 많을 것으로 예상된다.


댓글 없음:
댓글 쓰기