数据库页和扩展盘区

在 Microsoft® SQL Server™ 中,数据存储的基本单位是 。在 SQL Server 2000 中,页的大小是 8 KB。这意味着 SQL Server 2000 数据库每兆字节有 128 页。

每页的开始部分是 96 字节的页首,用于存储系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 等。

下表显示 SQL Server 2000 数据库的数据文件中的八种页类型。

页类型 内容
数据 包含数据行中除 textntextimage 数据外的所有数据。
索引 索引项。
文本/图像 textntextimage 数据。
全局分配映射表、辅助全局分配映射表 有关已分配的扩展盘区的信息。
页的可用空间 有关页上可用空间的信息。
索引分配映射表 有关表或索引所使用的扩展盘区的信息。
大容量更改映射表 有关自上次执行 BACKUP LOG 语句后大容量操作所修改的扩展盘区的信息。
差异更改映射表 有关自上次执行 BACKUP DATABASE 语句后更改的扩展盘区的信息。

日志文件不包含页,而是包含一系列日志记录。

数据页包含数据行中除 textntextimage 数据外的所有数据,textntextimage 数据存储在单独的页中。在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。

数据库页和扩展盘区_第1张图片

在 SQL Server 中,行不能跨页。在 SQL Server 2000 中,一行内最多包含的数据量是 8060 字节,不包括 textntextimage 数据。

扩展盘区 是一种基本单元,可将其中的空间分配给表和索引。一个扩展盘区是 8 个邻接的页(或 64 KB)。这意味着 SQL Server 2000 数据库每兆字节有 16 个扩展盘区。

为了使空间分配更有效,SQL Server 2000 对只含少量数据的表不分配完整的扩展盘区。SQL Server 2000 有两种类型的扩展盘区:

  • 统一扩展盘区由单个对象所有,扩展盘区中的所有八页只能由拥有该盘区的对象使用。

  • 混合扩展盘区最多可由 8 个对象共享。

通常从混合扩展盘区中向新表或新索引分配页。当表或索引增长到 8 页时,就变成统一扩展盘区。如果在现有表上创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都在统一扩展盘区内进行。

数据库页和扩展盘区_第2张图片


你可能感兴趣的:(sql,数据库,image,server,database,扩展,存储系统)