SQL server数据页页头参数列表
SQLserver每个数据页面的页头都是固定的96字节,另外就是真正的数据行以及行偏移矩阵。
掌握页面元数据也是对SQLserver内部组织的一个了解。
其中nextpage 和 prepage参数只有在相应表有聚集索引的时候,才会将页面以链表的形式组织起来,不然,仍然是靠的表扫描(先扫描IAM页)
LSN用于事务管理
行偏移矩阵是用作跟踪数据在磁盘上的真正位置,以及与逻辑位置的对应关系。顺便说一下即使表有聚集索引,行存储的物理位置仍然不是按照索引顺序,真正的物理位置顺序由操作系统决定。只是建立了聚集索引,表数据行的逻辑顺序才跟索引顺序一致。
使用DBCC PAGE可以对其进行查看。
顺便说一句,从这个链接
http://www.1huifu.com/Get/dr-doc/09_32_25_1917.htm
的一篇文章类似sqlserver2005技术内幕之存储引擎的第209页的内容极度重合,后搜到作者相关书籍:
http://www.golden-book.com/booksinfo/52/522761.html
哎,天下文章一大抄。
掌握页面元数据也是对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
哎,天下文章一大抄。