더북(TheBook)

코드 2-25 정렬 연산을 피하려고 필터링된 인덱스 생성

CREATE INDEX SelectProducts

ON Products(ProductName, ProductNumber)

WHERE CategoryID IN (1, 5, 9);


 

물론 필터링된 인덱스나 부분 인덱스로 할 수 있는 일에는 한계가 있다. 예를 들어 GETDATE() 같은 날짜 함수를 사용할 수 없고, 지난 1년이나 다음 90일까지 등 날짜 컬럼에 특정한 범위 조건을 줄 수 없다. 즉, WHERE 절에서 사용하는 값과 정확히 일치하는 조건만 줄 수 있다.

 

핵심 정리

• 필터링된 인덱스는 적은 비율의 로우에 인덱스를 사용할 때 저장 용량을 절약할 수 있어 유용하다.

• 필터링된 인덱스는 로우의 하위 집합에서 유일한 제약 조건을 구현하는 데 사용할 수 있다(예를 들어 WHERE active = 'Y'를 만족하는 로우).

• 필터링된 인덱스는 정렬 연산을 피하는 데 사용할 수 있다.

• 테이블 파티셔닝이 다른 인덱스 관리의 오버헤드 없이 필터링된 인덱스와 비슷한 혜택을 줄 수 있는지 고려한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.