mssql sqlserver统计信息的重要性


摘要:
在sqlserver中,统计信息的功能为帮助数据库引擎预估出正确的执行计划,
缩短sql运行时间,使sql运行更高效,下文将记录一次sql统计信息导致的异常


前几天,编写了一个数据抽取脚本,前一段时间还运行正常,最近运行时间突然超出所有人的预估,整整耗时10个小时,
开始我们以为是硬件发生了变化,通过仔细询问多方了解发现硬件最近几天没有发生任何变化,我们又对最近几天数据的增加量进行了
检查,发现最近数据增加也是按照要求在正常运行,在所有外部环境都没有发生大变化时,此时sql脚本执行慢,只能界定为sql server数据引擎内部出现异常,

最后我们整个数据库的统计信息进行了全部更新,第二天数据统计脚本,只用了10分钟就生成完毕。

通过这次的事件,让我认识到了统计信息对数据库引擎的重要性,统计信息的异常,会导致数据库执行时使用错误的执行计划,
预估错误的执行时间,导致很多不必要的开销和内存占用的错误估算,严重者会导致sql引擎宕机。
记录此信息,以后遇到数据库查询慢,先分析统计信息是否正确。