2022年sqlserver体系结构基础知识.docx
《2022年sqlserver体系结构基础知识.docx》由会员分享,可在线阅读,更多相关《2022年sqlserver体系结构基础知识.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀资料SQL SERVER体系结构袁旭佳目录SQL SERVER体系结构 . 1 袁旭佳 . 1 集合索引结构 . 2 非集合索引结构 . 3 堆结构 . 5表组织和索引组织 . 6 表组织 . 6 分区 . 7 集合表、堆和索引 . 7 非集合索引 . 8XML 索引 . 8 IN_ROW_DATA 安排单元 . 9 ROW_OVERFLOW_DATA 安排单元 . 10 LOB_DATA 安排单元 . 10 分区和安排单元示例 . 10 页和区 . 11 页 . 11 大型行支持 . 13 区
2、 . 13 行溢出数据超过8 KB . 14 第 1 页,共 15 页 - - - - - - - - - 行溢出留意事项. 14 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀资料集合索引结构在 SQL Server 中,索引是按B 树结构进行组织的;索引B 树中的每一页称为一个索引节点;B 树的顶端节点称为根节点;索引中的底层节点称为叶节点;根节点与叶节点之间的任何索引级别统称为中间级;在集合索引中,叶节点包含基础表的数据页;根节点和中间级节点包含存有
3、索引行的索引页;每个索引行包含一个键值和一个指针,该指针指向B 树上的某一中间级页或叶级索引中的某个数据行;每级索引中的页均被链接在双向链接列表中;集合索引在 sys.partitions 中有一行,其中,索引使用的每个分区的 index_id = 1 ;默认情形下,集合索引有单个分区;当集合索引有多个分区时,每个分区都有一个包含该特定分区相关数据的 B 树结构;例如,假如集合索引有四个分区,就有四个 B 树结构,每个分区中有一个 B 树结构;依据集合索引中的数据类型,每个集合索引结构将有一个或多个安排单元,将在这些单元中储备和治理特定分区的相关数据;每个集合索引的每个分区中至少有一个 IN_
4、ROW_DATA 安排单元;假如集合索引包含大型对象 LOB 列,就它的每个分区中仍会有一个 LOB_DATA 安排单元;假如集合索引包含的变量长度列超过 8,060 字节的行大小限制,就它的每个分区中仍会有一个 ROW_OVERFLOW_DATA 安排单元;有关安排单元的具体信息,请参阅 表组织和索引组织;数据链内的页和行将按集合索引键值进行排序;全部插入操作都在所插入行中的键值与现有行中的排序顺序相匹配时执行;B 树页集合由sys.system_internals_allocation_units系统视图中的页指针来定位;重要提示sys.system_internals_allocatio
5、n_units系统视图保留为仅供 Microsoft SQL Server 内部使用;不保证将来的兼容性;对于某个集合索引,sys.system_internals_allocation_units 中的 root_page 列指向该集合索引某个特定分区的顶部; SQL Server 将在索引中向下移动以查找与某个集合索引键对应的行;为了查找键的范畴, SQL Server 将在索引中移动以查找该范畴的起始键值,然后用向前或向后指针在数据页中进行扫描;为了查找数据页链的首页,SQL Server 将从索引的根节点沿最左边的指针进行扫描;下图显式了集合索引单个分区中的结构;细心整理归纳 精选学习
6、资料 - - - - - - - - - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀资料非集合索引结构非集合索引与集合索引具有相同的 B 树结构,它们之间的显著差别在于以下两点:基础表的数据行不按非集合键的次序排序和储备;非集合索引的叶层是由索引页而不是由数据页组成;既可以使用集合索引来为表或视图定义非集合索引,也可以依据堆来定义非集合索引;非集合索引中的每个索引行都包含非集合键值和行定位符;据行;此定位符指向集合索引或堆中包含该键值的数非集合索引行中
7、的行定位器或是指向行的指针,或是行的集合索引键,如下所述:细心整理归纳 精选学习资料 假如表是堆(意味着该表没有集合索引),就行定位器是指向行的指针;该指针由文件标 第 3 页,共 15 页 识符 ID 、页码和页上的行数生成;整个指针称为行ID RID ; - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编优秀资料假如集合索假如表有集合索引或索引视图上有集合索引,就行定位器是行的集合索引键;引不是唯独的索引,SQL Server 将添加在内部生成的值(称
8、为 唯独值 )以使全部重复键唯独; 此四字节的值对于用户不行见;仅当需要使集合键唯独以用于非集合索引中时,才添加该值; SQL Server 通过使用储备在非集合索引的叶行内的集合索引键搜寻集合索引来检索数据行;对于索引使用的每个分区,非集合索引在 index_id 0 的 sys.partitions 中都有对应的一行;默认情形下, 一个非集合索引有单个分区;假如一个非集合索引有多个分区,就每个分区都有一个包含该特定分区的索引行的 B 树结构;例如,假如一个非集合索引有四个分区,那么就有四个B 树结构,每个分区中一个;依据非集合索引中数据类型的不同,每个非集合索引结构会有一个或多个安排单元,
9、在其中储备和治理特定分区的数据;每个非集合索引至少有一个针对每个分区的 IN_ROW_DATA 安排单元(储备索引 B 树页);假如非集合索引包含大型对象 LOB 列,就仍有一个针对每个分区的LOB_DATA 安排单元;此外,假如非集合索引包含的可变长度列超过8,060 字节行大小限制,就仍有一个针对每个分区的 ROW_OVERFLOW_DATA 安排单元;有关安排单元的具体信息,请参阅 表组织和索引组织;B 树的页集合由 sys.system_internals_allocation_units 系统视图中的 root_page 指针定位;重要提示sys.system_internals_a
10、llocation_units系统视图保留为仅供 Microsoft SQL Server 内部使用;不保证以后的兼容性;下图说明白单个分区中的非集合索引结构;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 15 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀资料包含列的索引通过将包含列(称为非键列)添加到索引的叶级,可以扩展非集合索引的功能;键列储备在非聚集索引的全部级别,而非键列仅储备在叶级别;有关具体信息,请参阅具有包含列的索引;堆结构堆是
11、不含集合索引的表;堆的 sys.partitions 中具有一行,对于堆使用的每个分区,都有 index_id = 0 ;默认情形下, 一个堆有一个分区;当堆有多个分区时,每个分区有一个堆结构,其中包含该特定分区的数据;例如,假如一个堆有四个分区,就有四个堆结构;每个分区有一个堆结构;依据堆中的数据类型,每个堆结构将有一个或多个安排单元来储备和治理特定分区的数据;每个 第 5 页,共 15 页 - - - - - - - - - 堆中的每个分区至少有一个IN_ROW_DATA 安排单元;假如堆包含大型对象LOB 列,就该堆的每个分区仍将有一个LOB_DATA 安排单元;假如堆包含超过8,060
12、 字节行大小限制的可变长度列,就该堆的每个分区仍将有一个ROW_OVERFLOW_DATA 安排单元;有关安排单元的具体信息,请参阅表组织和索引组织;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -sys.system_internals_allocation_units名师精编优秀资料first_iam_page指向治理特定分区中系统视图中的列堆的安排空间的一系列IAM 页的第一页; SQL Server 使用IAM 页在堆中移动;堆内的数据页和行没有任何特定的次序,I
13、AM 页内的也不链接在一起;数据页之间唯独的规律连接是记录在信息;重要提示sys.system_internals_allocation_units系统视图保留为仅供 Microsoft SQL Server 内部使用;不保证将来的兼容性;可以通过扫描 IAM 页对堆进行表扫描或串行读操作来找到容纳该堆的页的扩展盘区;由于IAM 按扩展盘区在数据文件内存在的次序表示它们,所以这意味着串行堆扫描连续沿每个文件进行;使用 IAM 页设置扫描次序仍意味着堆中的行一般不依据插入的次序返回;下图说明 SQL Server 数据库引擎 如何使用 IAM 页检索具有单个分区的堆中的数据行;表组织和索引组织表
14、和索引作为 8 KB 页的集合储备;本主题介绍表页和索引页的组织方式;表组织细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 15 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀资料下图显示了表的组织;表包含在一个或多个分区中,每个分区在一个堆或一个集合索引结构包含数据行;堆页或集合索引页在一个或多个安排单元中进行治理,具体的安排单元数取决于数据行中的列类型;分区表页和索引页包含在一个或多个分区中;分区是用户定义的数据组织单元;默认情形下,表或索引
15、只有一个分区, 其中包含全部的表页或索引页;该分区驻留在单个文件组中;具有单个分区的表或索引相当于 SQL Server 早期版本中的表和索引的组织结构;当表或索引使用多个分区时,数据将被水平分区,以便依据指定的列将行组映射到各个分区;分区可以放 在数据库中的一个或多个文件组中;对数据进行查询或更新时,表或索引将被视为单个规律实体;有关详细信息,请参阅 已分区表和已分区索引;sys.partitions Transact-SQL目录视图;如要查看表或索引使用的分区,请使用集合表、堆和索引SQL Server 表使用以下两种方法之一来组织其分区中的数据页:集合表是有集合索引的表;数据行基于集合索
16、引键按次序储备;集合索引按 B 树索引结构实现,B 树索引结构支持基于集合索引键值对行进行快速检索;索引中每个级别的页(包括叶级别的数据页)链接在一个双向链接的细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 15 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀资料列表中;但是,通过使用键值来执行从一个级别到另一级别的导航;有关具体信息,请参阅 集合索引结构 ;堆是没有集合索引的表;数据行不按任何特别的次序储备,数据页也没有任何特别的次序;数据页不
17、在链接列表内链接;有关具体信息,请参阅 堆结构 ;索引视图与集合表具有相同的储备结构;当堆或集合表具有多个分区时,每个分区都有一个堆或 B 树结构,其中包含该指定分区的行组;例如,如果一个集合表有 4 个分区,那么将有 4 个 B 树,每个分区一个;非集合索引非集合索引与集合索引有一个相像的 B 树索引结构; 不同的是, 非集合索引不影响数据行的次序;叶级别包含索引行;每个索引行包含非集合键值、行定位符和任意包含列或非键列;定位符指向包含键值的数据行;有关具体信息,请参阅 非集合索引结构 ;XML 索引可以对表中的每个 xml 列创建一个主 XML 索引和多个帮助 XML 索引; XML 索引
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 sqlserver 体系结构 基础知识
限制150内