博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL server数据页页头参数列表

Posted on 2010-10-08 20:08  qianyz  阅读(333)  评论(0编辑  收藏  举报

SQLserver每个数据页面的页头都是固定的96字节,另外就是真正的数据行以及行偏移矩阵。
掌握页面元数据也是对SQLserver内部组织的一个了解。
其中nextpage 和 prepage参数只有在相应表有聚集索引的时候,才会将页面以链表的形式组织起来,不然,仍然是靠的表扫描(先扫描IAM页)
LSN用于事务管理
行偏移矩阵是用作跟踪数据在磁盘上的真正位置,以及与逻辑位置的对应关系。顺便说一下即使表有聚集索引,行存储的物理位置仍然不是按照索引顺序,真正的物理位置顺序由操作系统决定。只是建立了聚集索引,表数据行的逻辑顺序才跟索引顺序一致。
使用DBCC PAGE可以对其进行查看。

字段                   包含

pageID        该页面在数据库中的文件编号和页码

nextPage      如果该页面处于一个页面链中,那么该字段表示下一个页面的案件编号和页码

prevPage      如果该页面处于一个页面链中,那么该字段表示上一个页面的案件编号和页码

objID         该页面所属的对象的ID

lsn           用于更改和更新该页面的日志序列号(LSN)值

slotCnt       该页面中所用的总的槽(行)数

level         该页面在索引中的级别(对于叶页通常为0)

indexId       该页面的索引ID(对于数据页面通常为0)

freeData      该页面中的第一个自由空间的字节偏移量

pminlen       行的固定长度部分的字节数

freeCnt       页面中的自由字节数

reservedCnt   由所有事务预留的字节数

xactresenved 由最近启动的事务预留的字节数

tornBits      每个扇区1位,用于检测残缺页的写

flagBits      包含关于页面其他信息的2字节位图


顺便说一句,从这个链接
http://www.1huifu.com/Get/dr-doc/09_32_25_1917.htm
的一篇文章类似sqlserver2005技术内幕之存储引擎的第209页的内容极度重合,后搜到作者相关书籍:
http://www.golden-book.com/booksinfo/52/522761.html
哎,天下文章一大抄。

 

摘自:向翔,Keep Walking!