코드 2-23과 같이 동일한 컬럼에 필터링된 인덱스를 여러 개 생성할 수 있다.
코드 2-23 동일 컬럼에 필터링된 인덱스를 여러 개 생성
CREATE NONCLUSTERED INDEX PendPubDocuments
ON DocumentStatus (DocumentNumber, Status)
WHERE Status = ‘Pending publication’;
CREATE NONCLUSTERED INDEX PendExpDocuments
ON DocumentStatus (DocumentNumber, Status)
WHERE Status = ‘Pending expiration’;
‘BETTER WAY 12. 인덱스를 단순 필터링 이상의 목적으로 사용하자’에서 ORDER BY 절을 만족시켜야 하는 정렬 연산을 회피하는 데 인덱스를 사용할 수 있다고 했다. 필터링된 인덱스를 사용하면 이 개념을 더 확장할 수 있다.
코드 2-24의 쿼리에 코드 2-25의 인덱스를 사용하면 정렬 연산을 피할 수 있다.
코드 2-24 정렬 연산이 필요한 쿼리
SELECT ProductNumber, ProductName
FROM Products
WHERE CategoryID IN (1, 5, 9)
ORDER BY ProductName;