공부/데이터베이스

Clustered VS Non-Clustered

원클릭쓰리버그 2022. 3. 11. 20:40
728x90
USE Northwind;

-- 인덱스 종류
-- Clustered(영한 사정) vs Non-Clustered(색인)

-- Clustered
	-- Leaf Page = Data Page
	-- 데이터는 Clustered Index 키 순서로 정렬

-- Non-Clustered ? (사실 Clustered Index 유무에 따라서 다르게 동작)
-- 1) Clustered Index가 없는 경우
		-- Clustered Index가 없으면 데이터는 Heap Table이라는 곳에 저장
		-- Heap RID -> Hwap Table에 접근 데이터 추출

-- 2) Clustered Index가 있는 경우
		-- Heap Table이 없음. Leaf Table에 실제 데이터가 있따.
		-- Clustered Index의 실제 키 값을 들고 있다.

-- 임시 테스트 테이블을 만들고 데이터 복사

SELECT*
INTO TestOrderDetails
FROM [Order Details];

SELECT*
FROM TestOrderDetails;

-- 인덱스 추가
CREATE INDEX Index_OrderDetails
ON TestOrderDetails(OrderID, ProductID);

-- 인덱스 정보
EXEC sp_helpindex 'TestOrderDetails';

-- 인덱스 번호 찾기
SELECT index_id, name
FROM sys.indexes
WHERE object_id = object_id('TestOrderDetails');

-- 조회
-- DB명칭, FILE ID , PAGE ID, 조회방법
DBCC IND('Northwind', 'TestOrderDetails',1);

--			872
-- 816 840 841 842 843 844
/*
DBCC PAGE(DB 이름, 파일 번호, 페이지 번호, 옵션)
옵션에는 다음과 같은 것이 있습니다.
0 : 헤더만
1 : 행 단위
2 : 페이지 단위
3 : 행 그리고 컬럼 값 (대부분 이 옵션을 사용)
파일 번호와 페이지 번호는 아래 방식으로 찾을 수 있습니다.
*/
DBCC PAGE('Northwind',1,840,3);




-- Clustered 인덱스 추가
CREATE CLUSTERED INDEX Index_OrderDetails_Clustered
ON TestOrderDetails(OrderID);


DBCC PAGE('Northwind',1,904,3);

'공부 > 데이터베이스' 카테고리의 다른 글

BookMark LoopUp  (0) 2022.03.14
INDEX SCAN vs INDEX SEEK  (0) 2022.03.14
데이터베이스 세부 인덱스 확인 및 복합 인덱스  (0) 2022.03.09
윈도우 함수  (0) 2022.03.02
변수와 흐름제어  (0) 2022.03.02