2009-10-19 1 views
1

이 두 커버 된 인덱스간에 차이점이 있습니까?복합 인덱스 또는 포함 된 인덱스로 구성된 커버 된 인덱스

  1. FriendID 및 아이디
  2. 는 포함 된 열

개별 MS SQL Server 관련 지점으로 FriendID 아이디와 함께 인덱스 모두 복합 인덱스. 위의 질문에 대한 대답이 '차이가 없음'이라면 데이터베이스 엔진 튜닝 관리자 (DTA)가 항상 포함 된 열에 미치게됩니까?

답변

9

예, 서로 다릅니다.

  • (A, B)의 색인은 A, B 조합을 색인 키로 포함하므로 모든 리프가 아닌 페이지에 나타납니다.
  • (A)에 대한 인덱스를 포함한다 (B) 만 인덱스 키 등이 포함되므로, 비 - 리프 페이지 만 A.를 포함하는 반면 B는 리프 페이지 존재할 것이다

차이점은 (A, B)의 인덱스가 (A)의 인덱스가 (B)를 포함하므로 더 많은 인덱스 (더 많은 페이지), 더 많은 IO를 생성하므로 덜 효율적인 비 리프 페이지를 포함한다는 것을 의미합니다.

그러나 인덱스 (A, B)는 이고 항상은 인덱스 (A) 포함 (B)입니다. 따라서 이미 (A, B)에 인덱스가 있고 튜닝 어드바이저가 (A) include (B)에 새 인덱스를 권장하는 경우 일부 문제가 발생합니다. 기존 인덱스 분석을 통해 DTA 권장 사항을 따르십시오. 불쾌감은 없지만 이런 상황에서는 인간 분석보다 DTA를 신뢰하는 경향이 있으므로 SQL (2008)의 경우 주문 및 필터를 포함하여 DTA 권장 사항을 이미 충족하는 인덱스를 보유하고 있는지 확인하십시오.

+0

포함되지 않은 페이지에서 더 좁은 인덱스를 유지하면서 포함 된 열을 사용하여 동일한 결과를 얻을 수 있다면 복합 인덱스를 사용할 때의 장점은 무엇입니까? – super9

+0

A 넥타이에 B로 두 번째 주문이 필요한 경우. –