2009-11-20 3 views
1

우리는 이것이 우리가 모두 인덱스 페이지와 실제 데이터 페이지에 C2있을 것이라는 점을 의미 하는가이 인덱스Covering Index 중복 데이터가 있습니까?

CREATE INDEX IX_test ON t1(c1) INCLUDE (c2) 

있다고 가정? 진짜 질문은 - c2를 업데이트하면 SQL Server가 IX_test와 실제 데이터 행 (클러스터 된 인덱스)을 업데이트해야한다는 의미입니까?

답변

1

예, 색인의 모든 입력란에 데이터를 복제하는 것과 같습니다. 필드를 포함하는 모든 인덱스 (인덱스)는 필드가 변경 될 때 업데이트되어야합니다.

따라서 쿼리를 포함하도록 인덱스를 확장하면 (또는 1보다 크면) 데이터가 복제됩니다. 항상 상식입니다.

1

클러스터 된 인덱스는 테이블의 일부이므로 테이블 자체를 업데이트하는 것입니다. 클러스터되지 않은 색인 인 경우 대답은 예였습니다.

클러스터 된 키 값의 논리적 순서에 따라 테이블의 해당 행의 실제 순서가 결정되는 인덱스를 만듭니다. 클러스터형 인덱스의 아래쪽 또는 리프 수준에는 테이블의 실제 데이터 행이 포함됩니다. 테이블 또는 뷰에는 한 번에 하나의 클러스터 된 인덱스가 허용됩니다. 자세한 내용은 클러스터 된 인덱스 구조를 참조하십시오.

// 편집 : 나는 다른 방식으로 그것을 이해했습니다. 요점은 당신이 열을 업데이트 할 경우 업데이트해야한다는였다 1) 클러스터 된 인덱스 2) 해당 열을 포함하는 모든 클러스터되지 않은 인덱스

만들기 위해 얼마나 많은 인덱스 무엇을/DB를 설계 질문이 항상있다 - 그것의가 읽기와 쓰기 속도 사이의 균형 (그리고 실제로 필요한 것).