现在的位置: 首页 > 综合 > 正文

MSSQL 数据页查询使他 DBCC PAGE 详细说明

2013年09月12日 ⁄ 综合 ⁄ 共 16792字 ⁄ 字号 评论关闭
----------------------------
--dbcc page内容解释
--author:boyi55
----------------------------
=========================

dbcc traceon(3064)
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
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
-------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
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
-------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
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
--------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
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
--------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
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
--------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
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
--------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
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
--------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
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


DBCC
执行完毕。如果 DBCC

输出了错误信息,请与系统管理员联系。
============================================


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')
=================================

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           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)


select * from demodb1..sysindexes
where
id=object_id('demodb1..table11')


insert into demodb1..table11 values(1,'boyi55')

=================================

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       
----------- ----------- --------------
------ -------------- ------ 
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

编号二十八页



=====================
DBCC

执行完毕。如果 DBCC
输出了错误信息,请与系统管理员联系。

PAGE:
(1:30)
------------

BUFFER:
-------

BUF
@0x192192C0
---------------
bpage = 0x19AF6000        bhash =
0x00000000        bpageno = (1:30)
bdbid = 7                
breferences = 1           bstat = 0xb
bspin = 0                 bnext
= 0x00000000       

PAGE
HEADER:
------------

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           

Allocation
Status
-----------------
GAM (1:2) = ALLOCATED     SGAM (1:3) =
ALLOCATED   
PFS (1:1) = 0x61 MIXED_EXT ALLOCATED  50_PCT_FULL  
DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED

Slot
0 Offset 0x60
------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
19af6060:  00080030  00000001 
01000002  00801f00 0...............
19af6070:  0000c900  1c000000 
01000000    000000 ...............
id                               =
1               

name                             = [TextPointer]
------------------------------------------------
TextTimeStamp
= 13172736  RowId = (1:28:0)

指针指向页号28.


        

DBCC

执行完毕。如果 DBCC
输出了错误信息,请与系统管理员联系。
==============================
sp_tableoption table11,'text in row',1000


update table11 set name='boyi55555' where id =1

 
DBCC

执行完毕。如果 DBCC
输出了错误信息,请与系统管理员联系。

PAGE:
(1:30)
------------

BUFFER:
-------

BUF
@0x192192C0
---------------
bpage = 0x19AF6000        bhash =
0x00000000        bpageno = (1:30)
bdbid = 7                
breferences = 4           bstat = 0xb
bspin = 0                 bnext
= 0x00000000       

PAGE
HEADER:
------------

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 =
8070          m_freeData = 127          m_reservedCnt = 7
m_lsn =
(5:52:5)          m_xactReserved = 7        m_xdesId = (0:188)
m_ghostRecCnt
= 0         m_tornBits = 0           

Allocation
Status
-----------------
GAM (1:2) = ALLOCATED     SGAM (1:3) =
ALLOCATED   
PFS (1:1) = 0x61 MIXED_EXT ALLOCATED  50_PCT_FULL  
DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED

Slot
0 Offset 0x60
------------------
Record Type =
PRIMARY_RECORD                       
Record Attributes = 
NULL_BITMAP VARIABLE_COLUMNS  
19af6060:  00080030  00000001 
01000002  62001800 0..............b
19af6070:  3569796f 
35353535                     oyi55555
id                              
= 1               
********************************************************
name                             = [BLOB Inline
Data]
-----------------------------------------------------
19af606f: 
69796f62  35353535        35           boyi55555


DBCC

执行完毕。如果
DBCC

输出了错误信息,请与系统管理员联系。

=============================================
DBCC EXTENTINFO

得到属于一个对象的所有盘区的列表
dbcc traceon(3604)
dbcc
extentinfo(northwind,categories)




DBCC

执行完毕。如果 DBCC
输出了错误信息,请与系统管理员联系。
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
行)

DBCC

执行完毕。如果 DBCC
输出了错误信息,请与系统管理员联系。

page_id
对应于obj_id


dbcc traceon(3604)
dbcc extentinfo(northwind)

用法:DBCC EXTENTINFO(dbname,tablename,indexid)

抱歉!评论已关闭.