SQL Server-클러스터형 인덱스를 사용할 때 데이터 페이지가 저장되는 방법


13

최근에 클러스터형 인덱스의 데이터 페이지가 연속적으로 저장되지 않는다고 들었습니다. 이것이 사실입니까?

아마도 데이터 페이지는 일반적으로 규칙에 대한 예외를 제외하고 연속적으로 저장됩니까? 또는 내가 잘못 들었고 데이터 페이지가 항상 연속적으로 저장됩니다.

많은 감사합니다.


1
온라인 설명서에는 페이지가 실제로 저장되는 방법과 B 트리가 배치되는 방법을 보여주는 훌륭한 다이어그램이 있습니다.
mrdenny

답변:


11

색인이 작성 될 때와 색인이 재 빌드 될 때 데이터 페이지가 연속적으로 저장됩니다. 그렇지 않으면 SQL Server는 페이지를 물리적 순서로 유지하려고 시도합니다. 불가능한 논리적 순서가 시도됩니다. 데이터베이스에서 발생하는 다른 쓰기로 인해 테이블에 차이가 생길 수 있습니다. SQL Server는 인덱스에 B + 트리를 사용합니다. 인덱스의 리프 (데이터) 수준에는 데이터가 포함되지만 다음 페이지와 이전 페이지에 대한 포인터가 포함 된 이중 연결 목록이기도합니다. 따라서 테이블이 물리적으로 100 % 연속적이어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.