索引及统计信息1
一 索引基础
1.1 为什么要索引?
快速查找
1.2 索引的主要类型
1.2.1 堆1.2.2 聚集索引
1.2.3 非聚集索引
1.2.4 列存储索引
1.2.5 特殊索引
1.2.6 其他类型
1.3 索引元数据
sys.indexessys.index_columns
sys.xml_indexes
sys.spatial_indexes
sys.column_store_dictionaries 和 sys.column_store_segments
二 索引存储基础
2.1 SQLServer存储基础
2.1.1 页
每页8KB
2.1.2 区
2.1.3 页类型
每页8KB
2.1.2 区
2.1.3 页类型
2.2 页组织
2.2.1 堆结构
2.2.2 B-Tree结构
2.2.3 列存储结构
2.2.2 B-Tree结构
2.2.3 列存储结构
2.3 检查工具
2.3.1 DBCC EXTENTINFO
该命令用于查看区是如何分配的,还能查看是属于混合区还是统一区
2.3.2 DBCC IND
该命令用于研究索引及其关联的页。这个命令返回对象所有页的清单,包括数据库、表或者索引。
2.3.3 DBCC PAGE
该命令用于检查页的信息。
该命令用于查看区是如何分配的,还能查看是属于混合区还是统一区
-
dbcc extentinfo(0,Index_One,-1)
2.3.2 DBCC IND
该命令用于研究索引及其关联的页。这个命令返回对象所有页的清单,包括数据库、表或者索引。
-
DBCC IND(0,N'Index_One',-1);
2.3.3 DBCC PAGE
该命令用于检查页的信息。
-
use Index_Demo
go
if OBJECT_ID(N'Index_Four','U') IS NOT NULL
DROP TABLE Index_Four
create table Index_Four(
RowID INT identity(1,1) NOT NULL,
DATA varchar(2000) null,
constraint PK_IndexFour Primary key clustered(RowID ASC)
);
insert into Index_Four(DATA) values(REPLICATE(1,2000)),values(REPLICATE(2,2000)),values(REPLICATE(3,2000)),values(REPLICATE(4,2000)),values(REPLICATE(5,25));
go
dbcc ind(0,N'Index_Four',-1);
go
DBCC TRACEON(3604)
DBCC PAGE(0,1,165,0)
2.4 页碎片
当存放的数据超过 8KB时,就会发生分页。
2.4.1 Forwarded records
这种分页形式仅发生在堆结构中。当一行数据被更新,并且大小已经无法放入该数据页时,SQLServer会把这个数据页移到堆中的新数据页里,并在新旧页中分别添加一个指针,标识这个数据在新旧页中的位置。从旧页指向新页的指针叫 forwarded record pointer,存放在旧页中。从新页指向旧页的指针叫做 back pointer,存放在新页中。
2.4.2 页拆分
页拆分(Page Splits),简称 分页。这种方式存在于 B-Tree 结构中,即聚集和非聚集索引均以这种方式分页。
这种分页形式仅发生在堆结构中。当一行数据被更新,并且大小已经无法放入该数据页时,SQLServer会把这个数据页移到堆中的新数据页里,并在新旧页中分别添加一个指针,标识这个数据在新旧页中的位置。从旧页指向新页的指针叫 forwarded record pointer,存放在旧页中。从新页指向旧页的指针叫做 back pointer,存放在新页中。
2.4.2 页拆分
页拆分(Page Splits),简称 分页。这种方式存在于 B-Tree 结构中,即聚集和非聚集索引均以这种方式分页。
三 索引统计信息
3.1 索引层级的统计信息
3.1.1 DBCC_SHOW_STATISTICS
3.1.2 目录视图
视图sys.stas
视图sys.stats_columns
函数 stats_date()
3.1.2 目录视图
视图sys.stas
视图sys.stats_columns
函数 stats_date()
3.2 索引使用的统计信息
该信息可以用 DMV sys.dm_db_index_usage_stats来查看
3.3 索引操作的统计信息
该信息可以用 DMO sys.dm_db_index_operational 来查看
3.4 索引物理统计信息
该信息用于显示当前索引上 insert/update/delete操作的物理影响,信息保存在 sys.dm_db_index_physical_stats中
四 索引误区及使用建议
4.1 常见误区
4.1.1 数据库不需要索引
4.1.2 主键总是聚集的
4.1.3 联机索引操作不引起阻塞
4.1.4 复合索引下,列的顺序不重要
4.1.5 聚集索引以物理顺序存储
4.1.6 填充因子可以应用在索引的插入过程中
4.1.7 每个表都应该有聚集索引
4.1.2 主键总是聚集的
4.1.3 联机索引操作不引起阻塞
4.1.4 复合索引下,列的顺序不重要
4.1.5 聚集索引以物理顺序存储
4.1.6 填充因子可以应用在索引的插入过程中
4.1.7 每个表都应该有聚集索引
4.2 索引使用建议
4.2.1 保留主键创建中的聚集索引选项
4.2.2 平衡索引的个数
4.2.3 填充因子
4.2.3 在外键列加索引
4.2.2 平衡索引的个数
4.2.3 填充因子
4.2.3 在外键列加索引
4.3 关于索引的查询建议
4.3.1 like
4.3.2 串联
4.3.3 标量函数
4.3.4 数据类型转换
4.3.2 串联
4.3.3 标量函数
4.3.4 数据类型转换
编辑推荐:
- 索引及统计信息103-02
- Development needs and product features of aerated concrete equipment03-02
- Low carbon helps the development of concrete mixer03-02
- SQL SERVER 2008 login failed 一例处理03-02
- The optimized crusher waiting for your choice03-02
- Attentions for impact crusher03-02
- ms dos copy 命令怎么用03-02
- https://msdn.microsoft.com/zh-cn/library/ms174283.aspx03-02
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 重置Centos 7 Root密码的超好用方法
重置Centos 7 Root密码的超好用方法
26-03-02 - 无线鼠标电池能用多久,什么无线鼠标电池好
无线鼠标电池能用多久,什么无线鼠标电池好
26-03-02 - 无线鼠标怎么用,无线鼠标使用教程
无线鼠标怎么用,无线鼠标使用教程
26-03-02 - ntfs格式分区是什么意思
ntfs格式分区是什么意思
26-03-02 - 无线网卡驱动怎么安装?
无线网卡驱动怎么安装?
26-03-02 - 电脑更换电脑主板电池的方法
电脑更换电脑主板电池的方法
26-03-02 - CPU i3 7100配什么主板
CPU i3 7100配什么主板
26-03-02 - Mac OS中MacPorts的安装与使用教程
Mac OS中MacPorts的安装与使用教程
26-03-02 - 怎样隐藏文件夹无法显示
怎样隐藏文件夹无法显示
26-03-02 - SQL Server profiler 介绍2
SQL Server profiler 介绍2
26-03-02
