第十二章——SQLServer统计信息(4)——在过滤索引上的统计信息
来源:互联网 发布:大非农数据查询 编辑:程序博客网 时间:2024/06/07 15:32
前言:
从2008开始,引入了一个增强非聚集索引的新功能——过滤索引(filter index),可以使用带有where条件的语句来创建非聚集索引,过滤掉不需要的数据,降低索引的维护开销和存储空间,提高查询性能。
准备工作:
在AdventureWorks2012上,有一个Production.WorkOrder表,将使用这个表来做演示。
步骤:
1、 创建一个非聚集索引在Production.WorkOrder列:
CREATE INDEX idx_WorkOrder_ScrapReasonID ON Production.WorkOrder(ScrapReasonID)GO
2、 创建一个非聚集索引会自动更新对应的统计对象:
DBCC SHOW_STATISTICS('Production.WorkOrder',IX_WorkOrder_ScrapReasonID)GO
3、 结果如下:
4、 查看All denisty列,现在删掉之前的索引,并创建一个过滤索引:
DROP INDEX IX_WorkOrder_ScrapReasonID ON Production.WorkOrderGO CREATE INDEX IX_WorkOrder_ScrapReasonID ON Production.WorkOrder(ScrapReasonID)WHERE ScrapReasonID IS NOT NULL GO
5、 再次执行并查看All density列,最后删除这个索引:
DBCC SHOW_STATISTICS('Production.WorkOrder',IX_WorkOrder_ScrapReasonID)GO DROP INDEX IX_WorkOrder_ScrapReasonID ON Production.WorkOrderGO
6、 结果如下:
分析:
从上面的两个图中对比结果可以知道,第一个结果集,在row sampled列是不同的,第一个是72591,第二个是729,相差了接近100倍,在Filter Expression列,一个是null一个是有值。
在All density列,第一个显示的是ScriptReasonID列,这个没有什么明显的差别。但是第二个就有比较大的差异。因为ScriptReasonID是指向聚集索引的非聚集索引列。
- 第十二章——SQLServer统计信息(4)——在过滤索引上的统计信息
- 第十二章——SQLServer统计信息(2)——非索引键上统计信息的影响
- 第十二章——SQLServer统计信息(1)——创建和更新统计信息
- 第十二章——SQLServer统计信息(1)——创建和更新统计信息
- 第十二章——SQLServer统计信息(3)——发现过期统计信息并处理
- 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
- SQLServer统计信息理解
- 全废话SQL Server统计信息(1)——统计信息简介
- 全废话SQL Server统计信息(2)——统计信息基础
- 数据库索引统计信息
- 利用SqlConnection获得SqlServer的统计信息
- SQLSERVER读懂语句运行的统计信息
- SQLSERVER读懂语句运行的统计信息
- SqlServer数据库统计信息的操作
- 索引碎片统计信息的解释
- 数据结构 顺序表的应用——学生信息统计
- 数据结构 链表的应用——学生信息统计
- SQLServer语句运行统计信息
- 基于ksoap2的android WebService上传图片
- Python_cannot import name Counter
- 《UNIX网络编程01》 第十一章 高级名字与地址转换 getnameinfo
- uva 10082
- git remote用法总结
- 第十二章——SQLServer统计信息(4)——在过滤索引上的统计信息
- Perforce使用指南_forP4V
- linux服务器搭建(一)
- Hadoop中ssh: Could not resolve hostname问题
- Windows下Critical Section、Event、Mutex、Semaphores区别
- MVC的理解
- 程序员必知8大排序3大查找(三)
- LINUX系统目录详解
- jQuery(三)