본문 바로가기
SQL SERVER

인덱스 페이지 확인하는 방법 (FT. DBCC IND, DBCC PAGE)

by jiahn_21 2022. 2. 13.

이번시간엔 인덱스 파일을 확인 하는 방법에 대해 포스팅 하고자 합니다. 

 

이전과 같이 SQL SERVER에서 제공하고 있는 'Northwind' 샘플 DB를 통해 진행하겠습니다. 

 

인덱스 ID 확인
SELECT * 
FROM SYS.indexes 
WHERE object_id = OBJECT_ID('Orders') 
AND name = 'PK_Orders'

조회하고 싶은 인덱스의 id 값을 확인하기 위해 위 쿼리로 인덱스 상세정보를 조회합니다. 

 

인덱스 파일 ID, 페이지 ID 값 확인
DBCC Ind(Northwind, Orders,1)

DB명, 테이블명, 인덱스 (위 쿼리로 확인한 ID값) 을 차례로 넣어주면 아래와 같은 결과를 얻을 수 있습니다. 

이 아래 데이터 가운데, INDEXLEVEL = 0인 데이터가 리프 페이지임을 의미합니다.

아래 값중에 첫번째 리프 페이지 값은 PrevPagePID(이전페이지)가 0이면서 IndexLevel이 0(리프페이지)인 568번이 첫번째 페이지임을 확인할 수 있습니다. 

인덱스 페이지 조회 
DBCC PAGE(Northwind, 1, 568,3)

DB명칭, FILE ID , PAGE ID, 조회방법(주로 3을 사용) 을 통해 페이지 조회가 가능합니다. 

아래와 같은 결과를 얻을 수 있습니다. ORDERID 순서로 저장되어 있으며, 클러스터 키로써 모든 데이터컬럼을 저장하고 있습니다. 

select top 2 * from Orders ORDER BY OrderID

위 쿼리를 통해 실제 데이터 저장된 위치와 조회결과가 동일함을 확인할 수 있습니다. 

 

더보기
더보기

DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.
PAGE: (1:568)


Slot 0 Column 1 Offset 0x4 Length 4 Length (physical) 4

OrderID = 10248                     

Slot 0 Column 2 Offset 0x8 Length 10 Length (physical) 10

CustomerID = VINET                  

Slot 0 Column 3 Offset 0x12 Length 4 Length (physical) 4

EmployeeID = 5                      

Slot 0 Column 4 Offset 0x16 Length 8 Length (physical) 8

OrderDate = 1996-07-04 00:00:00.000 

Slot 0 Column 5 Offset 0x1e Length 8 Length (physical) 8

RequiredDate = 1996-08-01 00:00:00.000                                   

Slot 0 Column 6 Offset 0x26 Length 8 Length (physical) 8

ShippedDate = 1996-07-16 00:00:00.000                                    

Slot 0 Column 7 Offset 0x2e Length 4 Length (physical) 4

ShipVia = 3                         

Slot 0 Column 8 Offset 0x32 Length 8 Length (physical) 8

Freight = $32.3800                  

Slot 0 Column 9 Offset 0x4c Length 50 Length (physical) 50

ShipName = Vins et alcools Chevalier

Slot 0 Column 10 Offset 0x7e Length 36 Length (physical) 36

ShipAddress = 59 rue de l''Abbaye   

Slot 0 Column 11 Offset 0xa2 Length 10 Length (physical) 10

ShipCity = Reims                    

Slot 0 Column 12 Offset 0x0 Length 0 Length (physical) 0

ShipRegion = [NULL]                 

Slot 0 Column 13 Offset 0xac Length 10 Length (physical) 10

ShipPostalCode = 51100              

Slot 0 Column 14 Offset 0xb6 Length 12 Length (physical) 12

ShipCountry = France                

Slot 0 Offset 0x0 Length 0 Length (physical) 0

KeyHashValue = (793389adc214)       
Slot 1 Offset 0x122 Length 176

Record Type = PRIMARY_RECORD        Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
Record Size = 176                   
Memory Dump @0x000000A936D78122

0000000000000000:   30003a00 09280000 54004f00 4d005300 50000600  0.:. (..T.O.M.S.P...
0000000000000014:   00000000 0000b189 00000000 0000db89 00000000  ....................
0000000000000028:   0000b689 00000100 000084c5 01000000 00000e00  ....................
000000000000003C:   00080600 70008a00 98009800 a200b000 54006f00  ....p...........T.o.
0000000000000050:   6d007300 20005300 70006500 7a006900 61006c00  m.s. .S.p.e.z.i.a.l.
0000000000000064:   69007400 e4007400 65006e00 4c007500 69007300  i.t...t.e.n.L.u.i.s.
0000000000000078:   65006e00 73007400 72002e00 20003400 38004d00  e.n.s.t.r... .4.8.M.
000000000000008C:   fc006e00 73007400 65007200 34003400 30003800  ..n.s.t.e.r.4.4.0.8.
00000000000000A0:   37004700 65007200 6d006100 6e007900           7.G.e.r.m.a.n.y.

Slot 1 Column 1 Offset 0x4 Length 4 Length (physical) 4

OrderID = 10249                     

Slot 1 Column 2 Offset 0x8 Length 10 Length (physical) 10

CustomerID = TOMSP                  

Slot 1 Column 3 Offset 0x12 Length 4 Length (physical) 4

EmployeeID = 6                      

Slot 1 Column 4 Offset 0x16 Length 8 Length (physical) 8

OrderDate = 1996-07-05 00:00:00.000 

Slot 1 Column 5 Offset 0x1e Length 8 Length (physical) 8

RequiredDate = 1996-08-16 00:00:00.000                                   

Slot 1 Column 6 Offset 0x26 Length 8 Length (physical) 8

ShippedDate = 1996-07-10 00:00:00.000                                    

Slot 1 Column 7 Offset 0x2e Length 4 Length (physical) 4

ShipVia = 1                         

Slot 1 Column 8 Offset 0x32 Length 8 Length (physical) 8

Freight = $11.6100                  

Slot 1 Column 9 Offset 0x4c Length 36 Length (physical) 36

ShipName = Toms Spezialitäten       

Slot 1 Column 10 Offset 0x70 Length 26 Length (physical) 26

ShipAddress = Luisenstr. 48         

Slot 1 Column 11 Offset 0x8a Length 14 Length (physical) 14

ShipCity = Münster                  

Slot 1 Column 12 Offset 0x0 Length 0 Length (physical) 0

ShipRegion = [NULL]                 

Slot 1 Column 13 Offset 0x98 Length 10 Length (physical) 10

ShipPostalCode = 44087              

Slot 1 Column 14 Offset 0xa2 Length 14 Length (physical) 14

ShipCountry = Germany               

 

댓글