博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL2008如何管理对象使用的空间
阅读量:6843 次
发布时间:2019-06-26

本文共 1347 字,大约阅读时间需要 4 分钟。

管理对象使用的空间

 

“索引分配映射 (IAM)”页将映射分配单元使用的数据库文件中 4 GB 部分中的区。分配单元有下列三种类型:

  • IN_ROW_DATA

    用于存储堆分区或索引分区。

  • LOB_DATA

    用于存储大型对象 (LOB) 数据类型,例如 xml、varbinary(max) 和 varchar(max)。

  • ROW_OVERFLOW_DATA

    用于存储超过 8,060 字节行大小限制的 varchar、nvarchar、varbinary 或 sql_variant 列中存储的可变长度数据。

堆或索引的每个分区至少包含一个 IN_ROW_DATA 分配单元。根据堆或索引的架构,可能还包含一个 LOB_DATA 或 ROW_OVERFLOW_DATA 分配单元。有关分配单元的详细信息,请参阅。

一个 IAM 页在文件中的范围为 4 GB,与 GAM 或 SGAM 页的范围相同。如果分配单元包含来自多个文件的区,或者超过一个文件的 4 GB 范围,那么一个 IAM 链中将链接多个 IAM 页。因此,每个分配单元在有区的每个文件中至少有一个 IAM 页。如果分配给分配单元的文件中的区的范围超过了一个 IAM 页能够记录的范围,一个文件中也可能会有多个 IAM 页。

管理区的索引分配映射 (IAM) 页

IAM 页根据需要分配给每个分配单元,在文件中的位置也是随机的。系统视图 (sys.system_internals_allocation_units) 指向分配单元的第一个 IAM 页。该分配单元的所有 IAM 页都链接到一个链中。

重要说明重要提示

sys.system_internals_allocation_units 系统视图仅供内部使用,随时可能更改。不保证兼容性。

每个分配单元的链中所链接的 IAM 页

IAM 页有一个标头,指明 IAM 页所映射的区范围的起始区。IAM 页中还有一个大位图,其中每个位代表一个区。位图中的第一个位代表范围内的第一个区,第二个位代表第二个区,依此类推。如果某个位是 0,它所代表的区将不会分配给拥有该 IAM 页的分配单元。如果这个位是 1,它所代表的区将被分配给拥有该 IAM 页的分配单元。

当 SQL Server 数据库引擎必须在当前页中插入新行,而当前页中没有可用空间时,它将使用 IAM 和 PFS 页查找要将该行分配到的页,或者(对于堆或 Text/Image 页)查找具有足够空间容纳该行的页。数据库引擎使用 IAM 页查找分配给分配单元的区。对于每个区,数据库引擎将搜索 PFS 页,以查看是否有可用的页。每个 IAM 和 PFS 页覆盖大量数据页,因此一个数据库内只有很少的 IAM 和 PFS 页。这意味着 IAM 和 PFS 页通常位于内存中的 SQL Server 缓冲池中,所以能够很快找到它们。对于索引,新行的插入点由索引键设置。在这种情况下,不会出现上述搜索过程。

仅当 数据库引擎不能在现有的区中快速找到足以容纳插入行的页时,才将新区分配给分配单元。数据库引擎使用比例分配算法从文件组的可用区中分配区。如果文件组内有两个文件,而一个文件的可用空间是另一个文件的两倍,那么每从后一个文件分配一页,就从前一个文件分配两页。这意味着文件组内的每个文件应该有近似的空间使用百分比。

转载地址:http://kjbul.baihongyu.com/

你可能感兴趣的文章
UI Framework-1: views Windowing
查看>>
caffe-ssd使用预训练模型做目标检测
查看>>
asp.net cookie的操作
查看>>
git tutorial
查看>>
Java基础-面向接口编程-JDBC详解
查看>>
Spring MVC 处理模型数据(@ModelAttribute)
查看>>
柴夥說算法(5)--對偶
查看>>
java动态代理(JDK和cglib)
查看>>
【001】JS解析,反解析XML的一些问题
查看>>
设计模式之责任链模式
查看>>
Windows下安装Cygwin及包管理器apt-cyg(转)
查看>>
[Android Pro] Android API 23中废弃了HttpClient的解决办法
查看>>
Android webview
查看>>
UML类图关系全面剖析
查看>>
bash:command not found
查看>>
Linq 中的TakeWhile 和 SkipWhile
查看>>
JAVA开发:分享一些SpringMvc+Ibatis+spring的框架使用心得
查看>>
2017-2018-2 20155203《网络对抗技术》Exp6 信息搜集与漏洞扫描
查看>>
js中获取 table节点各tr及td的内容方法
查看>>
大专生自学Python到找到工作的心得
查看>>