본문 바로가기

개발&새발/DB

필터 조건식에서의 암시적 형변환 - MSSQL

#일반 필터 조건일때

동일한 형식 패밀리에 소속된 데이터 형식 사이에 암시적 형변환의 경우, 인덱스가 동일한 정렬 조건으로 정렬되거 있다고 가정하여 인덱스를 사용할 수 있다.

예를 들어, <int_col> = <decimal_expression>과 같은 필터 조건에서도 인덱스를 사용할 수 있으며, int_col = decimal_col과 같은 조인 조건에서도 우선순위가 낮은 INT 칼럼에 명시적으로 정렬 작을을 하지 않아도 Merge Join 연산자를 사용할 수 있다.

 

#LIKE 조건을 사용할 때

임의의 와일드카드와 함께 사용되는 LIKE 조건의 카디널리티 예측작업을 향상시키기 위해 문자열 요약 통계 정보를 수집하여 관리한다. 문자열 칼럼에 대해 부분 문자열에 대한 빈도(frequency) 분포 정보를 수집한다.(2000에서는 LIKE 'const%'와 같이 앞에 상수로 시작할때만 의미있는 선택도를 예측할 수 있다.)

쿼리 최적화 프로그램에서는 기존의 테이블 스캔 대신 인덱스 스캔을 한 다음, 검색(lookup)할 수 있게 되어 좀 더 정확한 의사결정을 수행할 수 있게 되었다.

 

INSIDE MICROSOFT SQL SERVER 2005: T-SQL Programming 참고

이 글은 스프링노트에서 작성되었습니다.