【问题标题】:SQL Server Command Timeout - executable file onlySQL Server 命令超时 - 仅限可执行文件
【发布时间】:2026-02-13 03:20:05
【问题描述】:

我收到一条错误消息:

System.Data.SqlClient.SqlException: 超时已过。

我已将此追溯到默认设置为 30 秒的命令超时。果然,当分析时,在 30 秒时完成(失败)。

简单的答案是增加代码中的CommandTimeout 值。这是一个问题 - 我只有一个可执行文件可以使用。

正在运行的查询是一个存储过程,通常在 18 到 26 秒之间运行,最近一直在 30+ 秒范围内运行。我已经尽我所能来优化查询,这是在三个带有连接的表上的一个丑陋的选择。无论如何,这并不是一个真正的选择,因为数据集将继续增长,并且将来会再次成为问题。

我在这里和网上其他地方可以找到的所有建议都说,唯一可以设置CommandTimeout 的地方是在建立连接后的代码中,没有其他方法可以调整命令超时。

我准备开始反编译可执行文件以尝试覆盖/设置命令超时的默认值..

关于如何以非编程方式增加命令超时值、轻松设置命令超时值或其他(希望)更明智的解决方案的任何建议?

感谢您的帮助!

ps - 我已经阅读 SO 有一段时间了。我的名声很臭,因为我总是不用发帖就能找到答案。你们太棒了,我很高兴我终于找到了开始的方法!

【问题讨论】:

    标签: sql-server timeout sqlclient timeoutexception


    【解决方案1】:

    您可以更改命令超时的唯一方法是更新代码,如果您没有应用程序的源代码,很抱歉,您很不走运。

    这是一个按命令设置的值,因此命令外部的任何内容都不会影响它。

    【讨论】:

    • 谢谢米切尔-我害怕那个。感谢您的快速回复。