理解统计信息(6/6):统计信息汇总贴

本文深入探讨了统计信息在SQLServer查询优化器中的重要性,包括其如何影响执行计划的选择,以及自动更新统计信息的阀值、人为更新的必要性和检测过期统计信息的方法。重点介绍了SQLServer中存储的统计信息类型,如密度向量和直方图,以及它们在性能调优中的应用。

在帮助优化器选择正确的执行计划,统计信息是一个重要因素。因此,我们在处理性能问题时,要足够重视统计信息。可能是对统计信息知识及其相关机制的缺乏,忽略统计信息往往是造成性能问题的根源。

查询优化器在每一步使用统计信息判断返回的行数。在执行计划里的预估行数信息是基于列上的可用统计信息计算而来的。统计信息会给我们列上数据分布信息。没有统计信息,查询优化器不能判断不同计划的效率。通过使用统计信息里的内容,查询优化器在访问数据的时候就可以做出正确选择。

在SQL Server里存储的统计信息包括密度和直方图:

有2类统计信息,索引统计信息和列统计信息。在表上定义索引时,索引统计信息会自动创建。列统计信息总是在单列,当在查询里列被引用时,列统计信息会自动创建。为了自动创建列统计信息,在数据库属性里可以将自动创建统计信息设置为启用。在理解统计信息(3/6):谁创建和管理统计信息?在性能调优中,统计信息的作用里我们详细讨论了统计信息是如何创建的,自动更新和创建统计信息是如何工作的,过期的统计信息如何影响我们的性能。

在表里发生合理的变化后,SQL Server会自动更新统计信息。这里有个阀限值来触发自动更新统计信息。默认的阀值对最优性能是否足够好?我们真的需要通过人为更新统计信息来干预自动更新统计信息么?看看理解统计信息(4/6):自动更新统计信息的阀值——人为更新统计信息的重要性就知道答案了。

在SQL Server 2005和SQL Server 2008里,辨别统计信息是否需要人为更新是个很困难的事,理解统计信息(5/6):如何检测过期的统计信息可以给你一些如何开始的想法。

额外赠送统计信息内幕:直方图和密度向量。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值