SQLSERVER数据存储内幕
2008-11-28 10:12:31 来源:WEB开发网核心提示:SQLSERVER数据库中数据如何存储是SQLSERVER数据库核心的知识,同时网络上相关的参考资料也比较少!近段时间通过学习相关知识,将自己对SQLSERVER数据库在数据存储方面的理解整理下来,SQLSERVER数据存储内幕,一方面希望能加深自己的印象,另一方面也希望能给其他的朋友提供相关的参考!一:存储文件类型S
SQLSERVER数据库中数据如何存储是SQLSERVER数据库核心的知识,同时网络上相关的参考资料也比较少!近段时间通过学习相关知识,将自己对SQLSERVER数据库在数据存储方面的理解整理下来,一方面希望能加深自己的印象,另一方面也希望能给其他的朋友提供相关的参考!
一:存储文件类型
SQLSERVER有两种数据存储文件,分别是数据文件和日志文件。
其中:数据文件是以8K(=8192Byte)的页面(Page)作为存储单元的。
而日志文件是以日志记录作为存储单元。
本文只讨论数据文件的存储方式,不涉及到日志文件存储方式。
数据文件以页面做为存储单元存储数据,要理解数据文件的存储方式,必须了解SQLSERVER中定义的页面类型种类。
二:页面类型
SQLSERVER中页面类型有8种,具体每种类型的详细说明,见下图:
用户的数据一般存放在数据页面中,由上图可以看出,数据页包含数据行中除 text、ntext 和 image 数据外的所有数据,text、ntext 和 image 数据存储在单独的页中。那么在一个数据页面中,数据是如何存放,SQLSERVER又是根据什么来定位页面与页面上的数据呢。要回答这个问题,有必要先了解数据页面的具体结构。
三:数据页面结构
在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。数据页面结构如下图所示,下面将详细解释
更多精彩
赞助商链接