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

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

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

谢谢,
维鲁沙米

最佳答案

简单粗暴的答案:将 SqlCommand.CommandTimeout 设置为更高的值。

长答案:

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

  • 此查询显示统计信息的年龄:
    SELECT  Object_Name(ind.object_id)
    ,       ind.name
    ,       STATS_DATE(ind.object_id, ind.index_id)
    FROM    SYS.INDEXES ind
    

    查询优化器在选择如何执行查询时使用统计信息。如果统计数据很旧,它可能会做出(非常)糟糕的选择。

    关于sql - 操作完成前超时时间已过或服务器未响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5303335/

    10-13 06:45