14、SQL Server索引:创建与优化指南

SQL Server索引:创建与优化指南

1. 理解索引结构

1.1 B - 树结构原理

在SQL Server中,索引采用B - 树结构,这种结构保证了每次搜索都会经过相同数量的索引层级和页面来定位所需数据。例如,当查找以某个字母开头的单词所在页面时,无论选择哪个字母,都只需扫描两个页面。

1.2 索引层级内部机制

索引的层级数量和每层的页面数量由简单的数学规则决定。SQL Server的数据页大小为8192字节,可存储最多8060字节的实际用户数据。

以在 char(60) 列上创建索引为例:
- 若表中只有100行数据,每行需要60字节存储,总共需要6000字节,这些数据可存于一个页面,此时该页面既是根页面也是叶页面。实际上,表中可存储134行数据,索引仍只需一个页面。
- 当添加第135行数据时,一个页面无法容纳所有数据,SQL Server会创建两个额外页面,形成一个有根页面和两个叶级页面的索引。根页面包含两行数据,分别对应两个叶级页面的初始值,此时查询定位表中任何行只需扫描两个页面。
- 随着数据行不断增加,在达到17957行之前,索引层级不会改变。当添加第17957行数据时,叶级需要新增一个页面,但根页面无法容纳135个条目,因此SQL Server会添加一个包含两个页面的中间层。
- 当表中数据达到2406105行时,SQL Server会再引入一个中间层。

不同列类型创建索引的情况有所不同。若在 int 列(需4字节存储)上创建索引,在添加到2016行之前,SQL Server只需读取一个页面来定

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值