2008-09-03 3 views
8

SQL Server 2005에서 쿼리 분석기는 이미 클러스터형 인덱스가있는 테이블의 기본 ID 열에 클러스터되지 않은 인덱스를 만들도록 여러 번 알려주었습니다. 이 권장 사항을 따른 후에 쿼리 실행 계획은 쿼리가 더 빨라야한다고보고합니다.클러스터 된 인덱스 열에 비 클러스터형 인덱스를 사용하면 성능이 향상됩니까?

클러스터 된 색인보다 동일한 열 (동일한 정렬 순서)의 비 클러스터형 색인이 더 빠른 이유는 무엇입니까?

답변

-1

클러스터 된 인덱스는 일반적으로 더 빠르지 만 클러스터 된 인덱스는 1 개만 가질 수 있습니다. 따라서 테이블 에 이미 클러스터 된 인덱스가 다른 열에 있으면 클러스터되지 않은 인덱스가 가장 좋습니다.

2

전체 행 데이터가 필요하지 않은 경우에 더 빠를 것이라고 추측 할 수 있습니다. 예를 들어 주어진 ID가있는 행이 존재하는지 확인하는 경우입니다. 그런 다음 작은 "1 열"색인이 훨씬 더 작아지는 반면 클러스터 된 색인은 다소 거대합니다.

16

클러스터 된 인덱스에는 테이블의 모든 데이터가 있지만 비 클러스터형 인덱스에는 열 + 클러스터형 인덱스 위치 또는 힙 (클러스터형 인덱스가없는 테이블)에있는 행만 있습니다. 따라서 개수 (열)를 지정하고 해당 열을 비 클러스터형 인덱스로 인덱싱하면 SQL 서버는 8K 페이지에 더 적합하므로 클러스터형 인덱스보다 빠른 비 클러스터형 인덱스 만 스캔하면됩니다.

관련 문제