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 |