14
七
页是SQL Server数据存储的最基本单位,数据文件(.mdf或.ndf)分配的磁盘空间可以从逻辑上划分成页(从0到n连续编号). 磁盘I/O操作在页级执行,区是八个物理上连续的页的集合,用来有效地管理页,所以页都存储在区中。日志文件不包含页,而是一系列日志记录。
页的大小是8KB,这意味着SQL Server数据库中每MB有128页,16个区。
关于页
每页的开头是96字节的标头,用于存储有关页的系统信息,此信息包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元ID。
在数据页上,数据行紧接着标头按顺序放置。页的末尾是行偏移表,对于页中的每一行,每个行偏移表都包含一个条目。每个条目记录对应行的第一个字节也页首的距离,行偏移表中的条目的顺序与页中行的顺序相反。
行不能跨页(页的单个行最大数量是8,060字节8kb 1024*8),不包括Text/Image类型的页数据,对于可变长类型的列,如果行超过8060,则从最大长度的列开始,将一个或多个可变长度列移动到ROW_OVERFLOW_DATA分配单元中的页,在原始页上维护一个24字节的指针,如果行的总大小小于8060,就再移回来.执行查询等操作时将延长处理时间,因为这些记录将同步处理,而不是异步。
关于区
SQL Server有两种类型的区:
统一区:由单个对象所有,区中的所有8页只能由所属对象使用
混合区,最对由八个对象共享,区中8页可由不同的对象所有。
通常从混合区向新表或索引分配页。当表或索引增长到 8 页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都使用统一区进行。
归类于:数据库 标签: SQLServer 页和区 Pages Extents
还没有评论!
-
第一个发布评论?
发表评论
