规划和体系结构(数据库引擎)

规划和体系结构(数据库引擎)

ID:42521272

大小:751.50 KB

页数:82页

时间:2019-09-16

规划和体系结构(数据库引擎)_第1页
规划和体系结构(数据库引擎)_第2页
规划和体系结构(数据库引擎)_第3页
规划和体系结构(数据库引擎)_第4页
规划和体系结构(数据库引擎)_第5页
资源描述:

《规划和体系结构(数据库引擎)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、规划和体系结构(数据库引擎)1.体系结构1.1页和区体系结构1.1.1页和区介绍如何在页和区中存储数据。SQLServer中数据存储的基本单位是页。为数据库中的数据文件(.mdf或.ndf)分配的磁盘空间可以从逻辑上划分成页(从0到n连续编号)。磁盘I/O操作在页级执行。也就是说,SQLServer读取或写入所有数据页。区是八个物理上连续的页的集合,用来有效地管理页。所有页都存储在区中。1.1.1.1页在SQLServer中,页的大小为8KB。这意味着SQLServer数据库中每MB有128页。每页的开头是96字节的标头,用于存储有关页的系统信息。此信息包括页码、页类型、页的可用空间以

2、及拥有该页的对象的分配单元ID。下表说明了SQLServer数据库的数据文件中所使用的页类型。页类型内容Data当textinrow设置为ON时,包含除text、ntext、image、nvarchar(max)、varchar(max)、varbinary(max)和xml数据之外的所有数据的数据行。Index索引条目。Text/Image大型对象数据类型:·text、ntext、image、nvarchar(max)、varchar(max)、varbinary(max)和xml数据。数据行超过8KB时为可变长度数据类型列:·varchar、nvarchar、varbinary和s

3、ql_variantGlobalAllocationMap、SharedGlobalAllocationMap有关区是否分配的信息。PageFreeSpace有关页分配和页的可用空间的信息。IndexAllocationMap有关每个分配单元中表或索引所使用的区的信息。BulkChangedMap有关每个分配单元中自最后一条BACKUPLOG语句之后的大容量操作所修改的区的信息。DifferentialChangedMap有关每个分配单元中自最后一条BACKUPDATABASE语句之后更改的区的信息。注意:日志文件不包含页,而是包含一系列日志记录。在数据页上,数据行紧接着标头按顺序放置

4、。页的末尾是行偏移表,对于页中的每一行,每个行偏移表都包含一个条目。每个条目记录对应行的第一个字节与页首的距离。行偏移表中的条目的顺序与页中行的顺序相反。1.1.1大型行支持行不能跨页,但是行的部分可以移出行所在的页,因此行实际可能非常大。页的单个行中的最大数据量和开销是8,060字节(8KB)。但是,这不包括用Text/Image页类型存储的数据。包含varchar、nvarchar、varbinary或sql_variant列的表不受此限制的约束。当表中的所有固定列和可变列的行的总大小超过限制的8,060字节时,SQLServer将从最大长度的列开始动态将一个或多个可变长度列移动到

5、ROW_OVERFLOW_DATA分配单元中的页。每当插入或更新操作将行的总大小增大到超过限制的8,060字节时,将会执行此操作。将列移动到ROW_OVERFLOW_DATA分配单元中的页后,将在IN_ROW_DATA分配单元中的原始页上维护24字节的指针。如果后续操作减小了行的大小,SQLServer会动态将列移回到原始数据页。有关详细信息,请参阅行溢出数据超过8KB。1.1.1.1区区是管理空间的基本单位。一个区是八个物理上连续的页(即64KB)。这意味着SQLServer数据库中每MB有16个区。为了使空间分配更有效,SQLServer不会将所有区分配给包含少量数据的表。SQLS

6、erver有两种类型的区:·统一区,由单个对象所有。区中的所有8页只能由所属对象使用。·混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。通常从混合区向新表或索引分配页。当表或索引增长到8页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成8页,则对该索引的所有分配都使用统一区进行。1.1.2管理区分配和可用空间介绍用于管理区分配情况并跟踪可用空间的SQLServer数据结构。用来管理区分配情况并跟踪可用空间的SQLServer数据结构相对而言比较简单。这有下列好处:·可用空间信息被紧密压缩,因此包含此信息的页相对较少。这样,可提高速

7、度,因为它减少了检索分配信息时所需的磁盘读取量。同时还可增加分配页保留在内存中的机会并且不需要更多的读操作。·大多数分配信息不是链在一起的。这就简化了对分配信息的维护。可以快速执行每个页的分配或释放。这将减少需要分配页或释放页的并发任务之间的争用。1.1.1.1管理区分配SQLServer使用两种类型的分配映射表来记录区的分配:·全局分配映射表(GAM)GAM页记录已分配的区。每个GAM包含64,000个区,相当于近4GB的数据。GAM用一个位

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。