2011-03-23 4 views
1

클러스터 된 인덱스를 만들 때 CYM_FirstNames 열, 예를 들어 FirstNames 인 경우 실제로 SQL Server에서 내부적으로 어떤 일이 발생합니까?인덱스의 내부 작업 및 인덱스

나는 클러스터 된 인덱스가 데이터 사본을 생성한다는 것을 읽었습니다.

그래서, SQL 서버, 인덱스 테이블 새 인덱스 테이블을 생성하고,로 테이블에서 복사 모든 FirstNames 않습니다 인덱스 테이블 및 FIRSTNAME를 검색 할 때, 다음은 인덱스 테이블에서 표시?

이것은 클러스터 된 인덱스의 실제 작업입니까?

+1

당신은 ** 절대적으로 * 필요 *이 훌륭한 소개 기사 [SQL Server Index Basics] (http://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/) - 색인 구조 및 그들을 시각화하는 다이어그램을 보여줍니다. –

답변

2

이 신속한 답변 여기에 처리하기 위해 너무 큰 주제는 방법 - 당신은 자신을 얻을 필요가 모든 훌륭한 세부 사항에서이 문제를 다루고

Microsoft SQL Server 2008 Internals

enter image description here

.

하지만 잠깐 : NO! 클러스터 된 인덱스를 만들면 NOT 중복 데이터! 너 어디서 났니?

클러스터 된 인덱스는 키에 따라 데이터의 순서를 바꾸고 클러스터 된 인덱스 의 리프 수준 노드는 데이터 페이지입니다.하지만 한 번만 존재합니다. 관심의

일부 더 많은 자원 :

+0

클러스터되지 않은 인덱스가 만들어 질 때 만들어진 데이터의 복사본도 마찬가지입니까? – sqlchild

+0

@marc_s :하지만 선생님, 클러스터 된 인덱스에서 sql은 데이터를 가져 오기 위해 테이블을 이동할 필요가 없습니다. 인덱스 자체에서 가져옵니다. 따라서 데이터 복사본이 인덱스에없는 경우 어떻게 표시됩니까? 테이블에 가지 않고 데이터? – sqlchild

+0

테이블을 만들고 데이터를 삽입하면 데이터는 데이터 페이지에 포함되며 앞에서 설명한 것처럼 CI의 리프 노드는 데이터 페이지이므로 데이터가 삽입되는 페이지도 해당 데이터 페이지입니다. – sqlchild