操作完成之前经过的超时时间或服务器没有响应

时间:2011-03-14 19:18:58

标签: sql database sql-server-2005

我们有生产服务器数据库和Widnows客户端项目。突然间,我们在查询数据库时遇到了这个错误。

“操作完成之前经过的超时时间或服务器没有响应”

我们如何从数据库端/ C#Windows解决这个问题?

谢谢, Velusamy

1 个答案:

答案 0 :(得分:5)

快速而肮脏的答案:将SqlCommand.CommandTimeout设置为更高的值。

答案很长:

  • 在SSMS中运行查询并启用“显示实际执行计划”。检查索引提示的结果。
  • 检查数据库服务器日志中是否有可疑事件
  • 验证统计信息是否已过期

此查询显示统计年龄:

SELECT  Object_Name(ind.object_id)
,       ind.name
,       STATS_DATE(ind.object_id, ind.index_id) 
FROM    SYS.INDEXES ind 

查询优化器在选择如何执行查询时使用统计信息。如果统计数据是旧的,它可能会(确实)做出错误的选择。