----------------------------
--dbcc page内容解釋
--author:boyi55
dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])
The printopt parameter has the following meanings:
0 - print just the page header
1 - page header plus per-row hex dumps and a dump of the page slot array (unless its a page that doesn't have one, like allocation bitmaps)
2 - page header plus whole page hex dump
3 - page header plus detailed per-row interpretation
=========================
dbcc traceon(3604)
dbcc page(northwind,1,100,1)
go
=========================
資料檔案的頁面結構(管理頁面 比較重要)
0 檔案頭頁面 1 PFS 頁 面 2 GAM 頁面 3 SGAM 頁面 6 DCM 頁面 7 BCM 頁面
一個GAM 和一個SGAM 可以管理4GB 的資料空間
==========================
DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理者聯系。
PAGE: (1:100)
-------------
BUFFER:
-------
記憶體中頁面的管理資訊
BUF @0x19217B80-- 記憶體中頁号
---------------
bpage = 0x19A3C000 (對應實體 頁面 ) bhash = 0x00000000 (hash ) bpageno = (1:100) (對應實體檔案的頁面号 )
bdbid = 6 ( 對應的資料庫ID ) breferences = 0 bstat = 0x9
bspin = 0 bnext = 0x00000000
PAGE HEADER:
------------
頁頭:96 位元組
Page @0x19A3C000
----------------
m_pageId = (1:100) (頁号 ) m_headerVersion = 1 m_type = 1 (資料頁類型,1:堆表和聚集索引的葉子節點資料)
m_typeFlagBits = 0x0 m_level = 0 (索引級别 ) m_flagBits = 0x8000
m_objId = 2041058307 (對應表ID ) m_indexId = 0 m_prevPage = (0:0)
m_nextPage = (0:0) pminlen = 8 m_slotCnt = 8 (頁面中資料的行數,八行 )
m_freeCnt = 7504 (空餘空間 ) m_freeData = 672 (空餘空間偏 移量,已用空間數 ) m_reservedCnt = 0
m_lsn = (4:270:16) m_xactReserved = 0 m_xdesId = (0:0)
m_ghostRecCnt = 0 m_tornBits = 1
Allocation Status
-----------------
GAM (1:2) = ALLOCATED (管理盤區位于第三個頁面編号2 ) SGAM (1:3) = ALLOCATED (管理混合盤區位于第四個頁面編号是三 )
PFS (1:1) = 0x60 MIXED_EXT ALLOCATED 0_PCT_FULL DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED
DATA:
-----
Slot 0, Offset 0x60
-------------------
Record Type = PRIMARY_RECORD
Record Attributes = NULL_BITMAP VARIABLE_COLUMNS
19a3c060: 00080030 00000001 03000004 35002500 0............%.5
19a3c070: 42804580 76006500 72006500 67006100 .E.B.e.v.e.r.a.g
19a3c080: 73006500 87000000 00000000 00005f00 .e.s........._..
19a3c090: 01000100 88000000 00000000 00005f00 ............._..
19a3c0a0: 03000100 00 .....
Slot 1, Offset 0xa5
19a3c0a5: 00080030 00000002 03000004 37002700 0............'.7
19a3c0b5: 43804780 6e006f00 69006400 65006d00 .G.C.o.n.d.i.m.e
19a3c0c5: 74006e00 00007300 00008900 5f000000 .n.t.s........._
19a3c0d5: 01000000 00000500 00008a00 5f000000 ..............._
19a3c0e5: 01000000 000700 .......
Slot 2, Offset 0xec
19a3c0ec: 00080030 00000003 03000004 39002900 0............).9
19a3c0fc: 43804980 6e006f00 65006600 74006300 .I.C.o.n.f.e.c.t
19a3c10c: 6f006900 73006e00 8b000000 00000000 .i.o.n.s........
19a3c11c: 00005f00 09000100 8c000000 00000000 ._..............
19a3c12c: 00006900 01000100 00 .i.......
Slot 3, Offset 0x135
--------------------
19a3c135: 00080030 00000004 03000004 3f002f00 0............/.?
19a3c145: 44804f80 69006100 79007200 50002000 .O.D.a.i.r.y. .P
19a3c155: 6f007200 75006400 74006300 00007300 .r.o.d.u.c.t.s..
19a3c165: 00008d00 5f000000 01000000 00000a00 ......._........
19a3c175: 00008e00 5f000000 01000000 000b00 ......._.......
Slot 4, Offset 0x184
19a3c184: 00080030 00000005 03000004 3f002f00 0............/.?
19a3c194: 47804f80 61007200 6e006900 2f007300 .O.G.r.a.i.n.s./
19a3c1a4: 65004300 65007200 6c006100 00007300 .C.e.r.e.a.l.s..
19a3c1b4: 00008f00 5f000000 01000000 00000c00 ......._........
19a3c1c4: 00009000 6c000000 01000000 000100 .......l.......
Slot 5, Offset 0x1d3
19a3c1d3: 00080030 00000006 03000004 3b002b00 0............+.;
19a3c1e3: 4d804b80 61006500 2f007400 6f005000 .K.M.e.a.t./.P.o
19a3c1f3: 6c007500 72007400 00007900 00009100 .u.l.t.r.y......
19a3c203: 69000000 01000000 00000400 00009200 ...i............
19a3c213: 69000000 01000000 000500 ...i.......
Slot 6, Offset 0x21e
19a3c21e: 00080030 00000007 03000004 31002100 0............!.1
19a3c22e: 50804180 6f007200 75006400 65006300 .A.P.r.o.d.u.c.e
19a3c23e: 93000000 00000000 00006900 06000100 .........i......
19a3c24e: 94000000 00000000 00007200 01000100 .........r......
19a3c25e: 00 .
Slot 7, Offset 0x25f
19a3c25f: 00080030 00000008 03000004 31002100 0............!.1
19a3c26f: 53804180 61006500 6f006600 64006f00 .A.S.e.a.f.o.o.d
19a3c27f: 95000000 00000000 00006900 07000100 .........i......
19a3c28f: 96000000 00000000 00006900 08000100 .........i......
19a3c29f: 00 .
OFFSET TABLE:
Row - Offset 96 (頁頭)+ (672-96 )(資料空間)+7504 (空餘空間)+16 (行偏移指針數組)=8192 (頁面大小)
8190-8191 slot0
...
... 行偏移數組
8176-8177 slot7
672-8175 空餘空間
7 (0x7) - 607 (0x25f) 607-671
6 (0x6) - 542 (0x21e) 542-606
5 (0x5) - 467 (0x1d3) 467-541
4 (0x4) - 388 (0x184) 388-466
3 (0x3) - 309 (0x135) 309-387
2 (0x2) - 236 (0xec) 236-308
1 (0x1) - 165 (0xa5) 165-235
0 (0x0) - 96 (0x60) 96-164
0-95 pageheader
============================================
create table demodb1..table10(
id int not null,
name char(5) not null,
address char(10) null)
select * from demodb1..sysindexes
where id=object_id('demodb1..table10')
id status first indid root minlen keycnt groupid dpages reserved used rowcnt rowmodctr reserved3 reserved4 xmaxlen maxirow OrigFillFactor StatVersion reserved2 FirstIAM impid lockflags pgmodctr keys name statblob maxlen rows
----------- ----------- -------------- ------ -------------- ------
1977058079 0 0x000000000000 0 0x000000000000 23 0 1 0 0 0 0 0 0 0 40 0 0 0 0 0x000000000000 -1 0 0 NULL table10 NULL 8000 0
無資料 first 為指向第一列或者根頁的指針。
=============================================
insert into demodb1..table10(id,name,address)values(1,'abcde','suzhou')
=================================
----------- ----------- -------------- ------ -------------- ------ ------
1977058079 0 0x0F0000000100 0 0x0F0000000100 23 0 1 1 2 2 1 1 0 0 40 0 0 0 0 0x190000000100 -1 0 0 NULL table10 NULL 8000 1
first 0x0F 編号十五頁
create table table11(id int,name text)
where id=object_id('demodb1..table11')
insert into demodb1..table11 values(1,'boyi55')
----------- ----------- -------------- ------ -------------- ------
1993058136 0 0x1E0000000100 0 0x1E0000000100 8 0 1 1 2 2 1 1 0 0 43 0 0 0 0 0x1F0000000100 -1 0 0 NULL table11 NULL 8000 1
1993058136 2 0x1C0000000100 255 0x1C0000000100 0 0 1 0 2 2 0 0 0 0 0 0 0 0 0 0x1D0000000100 -1 0 0 NULL ttable11 NULL 8000 0
first 0x1E 編号三十頁
first 0x1C 編号二十八頁
=====================
PAGE: (1:30)
BUF @0x192192C0
bpage = 0x19AF6000 bhash = 0x00000000 bpageno = (1:30)
bdbid = 7 breferences = 1 bstat = 0xb
bspin = 0 bnext = 0x00000000
Page @0x19AF6000
m_pageId = (1:30) m_headerVersion = 1 m_type = 1
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x8000
m_objId = 1993058136 m_indexId = 0 m_prevPage = (0:0)
m_nextPage = (0:0) pminlen = 8 m_slotCnt = 1
m_freeCnt = 8063 m_freeData = 127 m_reservedCnt = 0
m_lsn = (5:49:1) m_xactReserved = 0 m_xdesId = (0:0)
m_ghostRecCnt = 0 m_tornBits = 0
GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED
PFS (1:1) = 0x61 MIXED_EXT ALLOCATED 50_PCT_FULL DIFF (1:6) = CHANGED
Slot 0 Offset 0x60
------------------
19af6060: 00080030 00000001 01000002 00801f00 0...............
19af6070: 0000c900 1c000000 01000000 000000 ...............
id = 1
name = [TextPointer]
------------------------------------------------
TextTimeStamp = 13172736 RowId = (1:28:0)
指針指向頁号28.
==============================
sp_tableoption table11,'text in row',1000
update table11 set name='boyi55555' where id =1
bdbid = 7 breferences = 4 bstat = 0xb
m_freeCnt = 8070 m_freeData = 127 m_reservedCnt = 7
m_lsn = (5:52:5) m_xactReserved = 7 m_xdesId = (0:188)
19af6060: 00080030 00000001 01000002 62001800 0..............b
19af6070: 3569796f 35353535 oyi55555
id = 1
********************************************************
name = [BLOB Inline Data]
-----------------------------------------------------
19af606f: 69796f62 35353535 35 boyi55555
DBCC EXTENTINFO 得到屬于一個對象的所有盤區的清單
dbcc extentinfo(northwind,categories)
file_id page_id pg_alloc ext_size obj_id index_id pfs_bytes
----------- ----------- ----------- ----------- ----------- ----------- ------------------
1 98 1 1 2041058307 1 0x6000000000000000
1 100 1 1 2041058307 1 0x6000000000000000
1 389 1 1 2041058307 2 0x6000000000000000
1 95 1 1 2041058307 255 0x6200000000000000
1 97 1 1 2041058307 255 0x6400000000000000
1 103 1 1 2041058307 255 0x6400000000000000
1 104 1 1 2041058307 255 0x6400000000000000
1 105 1 1 2041058307 255 0x6200000000000000
1 106 1 1 2041058307 255 0x6400000000000000
1 107 1 1 2041058307 255 0x6400000000000000
1 108 1 1 2041058307 255 0x6200000000000000
1 112 4 8 2041058307 255 0x4444424400000000
(所影響的行數為 12 行)
page_id 對應于obj_id
dbcc extentinfo(northwind)
用法:DBCC EXTENTINFO(dbname,tablename,indexid)