今天早上醒来,发现我们的集群已关闭。它马上又回来了。我发现日志错误日志中有关 IO 的条目耗时超过 15 秒。我们的监控服务器尝试 ping 服务器并出现超时错误。
我检查了我们的一个监控工具,看看早上 4:30 发生了什么。我们的一个大型数据库似乎正在更新统计数据。该工具显示我们的磁盘已用尽。我看到其中一个磁盘的繁忙时间百分比非常高。
现在 sqlagent 正在按字母顺序在后续数据库中进行相同的操作!我们确实有自动更新统计信息 - 但我认为这是根据需要发生的。我现在没有启用任何统计更新作业(我知道 - 并且作业监视器没有显示任何正在运行的作业),所以我不确定是什么原因造成的。此外,现在是半夜,因此这些系统上不会有用户更新行。
http://support.microsoft.com/default.aspx?scid=kb;en-us;195565 - 证实了我对自动统计的按需性质的看法。
昨晚下午 6:30 左右也发生了同样的事情 - 在同一个大型数据库上 - 一些 select statsman from... 语句。
sqlagent 正在运行命令。
磁盘位于 SAN 上,我们正在运行最新版本的 sql 2005。
创建事件通知。DDL 事件的 MSDN 列表没有列出统计事件,但它们是 DDL 通知的有效来源并且会触发。您的通知消息将包含 SPID、LOGIN 和触发统计操作的实际 T-SQL 语句。
今晚关闭自动更新统计信息,看看问题是否被复制。如果没有,那么您可能必须自己管理统计更新。