SQL Server页类型详解
SQL Server中包含多种不同类型的页,来满足数据存储的需求。不管是什么类型的页,它们的存储结构都是相同的。每个数据文件都包含相当数量的由8KB组成的页,即每页有8192bytes可用,每页都有96byte用于页头的存储,剩下的空间
才用来存储实际的数据,在页的最后是数据行偏移数组,也可以叫“页槽”数组,我们可以把一个页看做是有一个个方格的书橱,哪行数据占用了哪个槽,都在页尾的位置进行标示,并且页尾数组的写入顺序是倒叙的,这样就可以有效的利用页空间。 由此可以预见,页面上的“槽”并不一定是有序存放的,当有新的ID进来,并且该ID位于该页的最大ID和最小ID之间时(假设是以ID进行排序的叶子页),那么该ID数据行则直接插入到已经存在的数据行的后面即可,当有查询需要检索该ID所在的行时, 数据库引擎从索引页找到该“叶子”页,将该页全部加载到内存中,通过页尾的行偏移数组找到对应的行。页尾数组的记录大小存储在页头里,数组里面每一个关于“页槽”的记录占用空间为2bytes。 据我所知,SQL Server数据文件共有14种页类型: 类型1——数据页(Data Page):堆中的数据页 聚集索引中的“叶子”页 在数据文件中的位置是随机的 DBCC PAGE 中m_type=1 类型2——索引页(Index Page): 非聚集索引 非“叶子”级聚集索引 在数据文件中的位置是随机的 DBCC PAGE 中m_type=2 类型3——文本混合页(Text Mixed Page): 较短长度的LOB数据类型,多种类型,多行存储 在数据文件中的位置是随机的 DBCC PAGE 中m_type=3 类型4——文本页(Text Tree Page): 存储单个LOB行 在数据文件中的位置是随机的 DBCC PAGE 中m_type=4 类型5——排序页(Sort Page): 进行排序操作时的临时页 常见于TempDB中,在用户数据中进行“ONLINE"操作时也可见(例如:联机创建索引未指定SORT_IN_TEMPDB选项时) 在数据文件中的位置是随机的 DBCC PAGE 中m_type=19 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |