2016-09-29 2 views
0

은 내가 INDEX01 이후 INDEX_02겹치는 인덱스 또는 부분 집합

CREATE NONCLUSTERED INDEX [Index01] ON [Tab1](
colA,colB,colC) 
INCLUDE (colD,colE,colF) 

CREATE NONCLUSTERED INDEX [Index02] ON [Tab1](
    colE, 
    colF, 
    colC, 
    colD, 
    colA, 
    colC) 
INCLUDE (colB,colZ) 

의 부분 집합이 Index02의 부분 집합이 우리가 INDEX01을 삭제할 수 있습니다있는 Index_01이? Index_01과 Index_02가 같은가요?

미리 감사드립니다.

+1

이름, 성 및 거주지로 분류 된 전화 번호부는 직업, 생년월일, 측정, 거주지, 성 및 이름으로 분류 된 하위 집합입니다. 데이터가 있지만 사용은 근본적으로 다릅니다. –

+0

두 인덱스가 다르게 작동합니다. –

+1

하위 집합이 아니며 다르게 작동합니다.이 질문을 읽으면 도움이 될 것입니다. http://stackoverflow.com/questions/2292662/how-important-is-the-order-of-columns-in-indexes – EricZ

답변

0

SQL Server는 인덱스를 정의하는 열을 기반으로 B-Tree Plus를 작성합니다. Index01은 colA, colB 및 colC 열을 기반으로 작성됩니다. Index02의 B- 트리 빌드는 colE, colF, colC, colD, colA, colCT.hey를 기반으로 작성되며 매우 다른 색인입니다.

Index01에 colD, colE, colF가 포함되어 있어도 colD, colE, colF 열에있는 데이터 만 쿼리에 필요한 경우 colA, colB, colC를 기준으로 일치 항목을 찾을 때 SQL Server에 추가로 이동하여 데이터에 들어가려면 색인에 정보가 포함되어 반환 할 수 있습니다.