沉默之都

沉默,造就了我们的冷酷-程序的威力
posts - 15, comments - 8, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

由于统计信息引起的性能灾难

Posted on 2010-08-04 12:58 潘鑫明 阅读(137) 评论(0) 编辑 收藏

某日,公司的某站点突然某个业务超时频频,遂检查数据库查询,发现简单的selectcount也非常之慢,检索top10也比较慢,这张表本身数据量并不大,只有1200多W,检查所有索引也都覆盖到,很奇怪的问题,最后发现是统计信息引起的问题。。

所谓统计信息:

按照默认设置,如果表中的某列没有索引,则SQL Server会自动为该列创建统计。然后,查询优化器评估该列中数据分布范围的统计信息,以选择一个更为有效的查询处理方案。分辨自动创建的统计很简单,在SQL Server 7.0SQL Server 2000中,自动创建的统计的前缀为_WA_Sys

如何获取统计信息呢?

dbcc show_statistics('表名',索引名)

即可看到某个索引的统计信息。

如何更新统计信息呢?

update statistics 表名

也可 update statistics 表名(索引名)