인덱스 페이지 확인하는 방법 (FT. DBCC IND, DBCC PAGE)
이번시간엔 인덱스 파일을 확인 하는 방법에 대해 포스팅 하고자 합니다.
이전과 같이 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