SQL Server 2005에는 키가 아닌 열을 포함한 비클러스터형 인덱스를 생성할 수가 있습니다. 키가 아닌 열을 포함한 인덱스, 즉 포괄 열이 있는 인덱스는 인덱스 커버링 가능성을 높여 주기 때문에 쿼리의 성능을 개선시키는데 도움이 됩니다.
참고로 인덱스 커버링이랑 쿼리 옵티마이저가 테이블 데이터나 클러스터형 인덱스의 데이터를 참조하지 않고 비클러스터형 인덱스의 열 값만을 참조하여 원하는 데이터를 얻는 것을 말합니다. 이와 같이 데이터나 클러스터형 인덱스를 참조하지 않게 되면 적은 I/O로 원하는 결과를 얻게 되므로 성능적인 측면에서 도움이 됩니다.
포괄 열이 있는 인덱스는 다음과 같은 장점이 있습니다.
? 인덱스 키 열로 허용되지 않는 데이터 형식을 포괄 열에는 포함시킬 수 있습니다. 포괄 열 인덱스에는 text, ntext, image 데이터 형식을 제외한 모든 데이터 형식이 허용됩니다.
? 비클러스터형 인덱스를 구성하는 인덱스 키 열의 개수 또는 인덱스 키의 크기의 계산에서 제외됩니다.
다음 예제에서와 같이 CREATE INDEX 문에 INCLUDE 절을 추가하여 포괄 열 인덱스를 생성할 수 있습니다.
[따라하기] 포괄 열을 추가한 인덱스 생성하기 |
USE AdventureWorks; GO -- 포괄 열을 추가한 인덱스 생성 CREATE NONCLUSTERED INDEX IX_Address_PostalCode ON Person.Address (PostalCode) INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID); GO -- 포괄 열 인덱스로 인해 성능이 향상되는 쿼리 예 SELECT AddressLine1, AddressLine2, City, StateProvinceID, PostalCode FROM Person.Address WHERE PostalCode BETWEEN N'98000' and N'99999'; GO |
'연구개발 > SQL2005' 카테고리의 다른 글
[SQL 2005 GUIDE] 인덱스 조각화 확인하기 - DMV 활용 (0) | 2009.07.06 |
---|---|
[SQL 2005 GUIDE] 인덱스 옵션 - IGNORE_DUP_KEY (0) | 2009.07.06 |
[SQL 2005 GUIDE] 인덱스 개요 (0) | 2009.07.06 |
[SQL 2005 GUIDE] 테이블이 사용하는 공간 확인하기 (0) | 2009.07.06 |
[SQL 2005 GUIDE] 테이블 정보 확인하기 (0) | 2009.07.06 |