• sql server 统计信息


    统计信息是如何提高SQLServer查询性能的?统计直方图用作在查询执行计划中查询优化器的选择依据。如果一个查询谓词包含统计信息的列,那么查询优化器不需要预测该查询中影响行数,因此,查询优化器有足够的信息去创建执行计划。SQLServer创建执行计划有一下几种不同的方式:

    • 统计信息会在每个新创建的索引中自动创建统计信息。
    • 如果数据库中AUTO_CREATE_STATISTICS被设置为ON,SQLServer将会自动对查询中用到的,且没有索引的列自动创建统计信息。

      在非常特殊的情况下,你不得不禁用这个有用的特性,可以使用以下方式关闭:

    1、  使用sp_autostats来在表、索引或者统计对象上显式并更改自动更新统计信息选项。

    2、  在表级别中,可以使用NORECOMPUTEoption of the UPDATE STATISTICS命令。

    3、  你也可以在CREATESTATISTICS命令中使用NORECOMPUTE选项,但之后需要删除并重建统计信息。

    4、  在CREATE INDEX命令中使用STATISTICS_NORECOMPUTE。

    5、  在数据库级别,可以使用以下命令来禁用:

    ALTER DATABASE[你的库名]

    SET AUTO_UPDATE_STATISTICS OFF

    当使用数据库级别的禁用时,表、索引或者统计对象的设置将全部失效。

    何时更新统计信息?

             如果你的查询执行得很慢,那么是时候更新统计信息了。并且建议当你插入大量数据到升序或者降序的列时,更新统计信息,因为在这种情况下,统计信息直方图将不包含新插入的值,同时,强烈建议在除索引维护(当你重建、整理碎片或者重组索引时,数据分布不会改变)外的维护工作之后更新统计信息。

             如果数据库的数据更改频繁,建议最低限度每天更新一次统计信息。一般来说,在数据仓库中,可以降低更新统计信息的频率,当更新时,通常建议执行sp_updatestats存储过程来实现。

     转自:

    http://blog.csdn.net/dba_huangzj/article/details/8041267

    http://blog.csdn.net/column/details/sqlserverdba.html

  • 相关阅读:
    Centos7 KVM启用嵌套虚拟化
    CentOS 桥接网卡配置
    centos iso镜像自动挂载
    git status没有颜色提示
    virt-install 安装系统和启动虚机
    Python 源代码代码打包成 whl 文件
    存储池与存储卷,使用virt-install创建虚拟机
    ftp 搭建 centos 源
    git 生成并添加 SSH key
    linked-list-cycle leetcode C++
  • 原文地址:https://www.cnblogs.com/weiweictgu/p/7783472.html
Copyright © 2020-2023  润新知