2010-08-02 3 views
5

데이터베이스가 기본 키를 저장하는 방법을 이해하는 한도는 나머지 노드를 저장하는 클러스터 된 키를 기반으로하는 b 트리입니다.SQL Server는 복합 기본 키를 어떻게 저장합니까?

나는 지난 세기에 이래로 이러한 이해를 업데이트하지 않았으며 SQL Server가 단일 기본 키와 비교하여 복합 기본 키를 저장하는 방법을 알고 싶어합니다.

아무에게도 이것에 대한 세부 사항을 알려줄 수 있습니까?

+2

지금 당장은 적절한 답을 줄 시간이 없지만 여기서 실제로 고려해야 할 3 가지 가능성이 있음을 언급 할 것입니다. (1) PK는 클러스터 된 색인입니다 (2) PK는 힙 (3) PK는 다른 클러스터 된 인덱스가있는 테이블의 비 클러스터형 인덱스입니다. –

+0

따라서 클러스터 된 인덱스는 PK가 아닌 저장소입니다. 나는이 항목들을 더 이상 동의어로 생각하지 않았던 것 같다. – Nat

답변

4

복합 키는 일반 단일 열 키와 완전히 동일하지만 더 길며 여러 값으로 구성됩니다. 단일 열에 A- 트리가 있다고 가정 해보십시오. 비 리프 페이지에는 A 열의 값을 가진 슬롯과 리프 페이지에 대한 포인터가 있습니다. 리프 페이지에는 열 A 값 (키)이있는 슬롯과 그 행의 다른 모든 열이옵니다. 합성 키는 정확히 같지만 슬롯의 값은 키에 선언 된 순서대로 합성 값이됩니다.

SQL Server 데이터 페이지의 내부에 대한 설명이 Anatomy of a Page입니다. 또한 Kelan Delaney의 이전 SQL 7.0 책의 6 장은 Technet : Tables에서 온라인으로 볼 수 있습니다. 여전히 훌륭한 자료이며 기본 사항은 여전히 ​​SQL 2008 R2에 적용됩니다 (변경된 사항은 대부분 최대 유형 및 압축 설정과 관련이 있지만 대량의 정보는 유효합니다).

관련 문제