【发布时间】:2026-02-13 03:20:05
【问题描述】:
我收到一条错误消息:
System.Data.SqlClient.SqlException: 超时已过。
我已将此追溯到默认设置为 30 秒的命令超时。果然,当分析时,在 30 秒时完成(失败)。
简单的答案是增加代码中的CommandTimeout 值。这是一个问题 - 我只有一个可执行文件可以使用。
正在运行的查询是一个存储过程,通常在 18 到 26 秒之间运行,最近一直在 30+ 秒范围内运行。我已经尽我所能来优化查询,这是在三个带有连接的表上的一个丑陋的选择。无论如何,这并不是一个真正的选择,因为数据集将继续增长,并且将来会再次成为问题。
我在这里和网上其他地方可以找到的所有建议都说,唯一可以设置CommandTimeout 的地方是在建立连接后的代码中,没有其他方法可以调整命令超时。
我准备开始反编译可执行文件以尝试覆盖/设置命令超时的默认值..
关于如何以非编程方式增加命令超时值、轻松设置命令超时值或其他(希望)更明智的解决方案的任何建议?
感谢您的帮助!
ps - 我已经阅读 SO 有一段时间了。我的名声很臭,因为我总是不用发帖就能找到答案。你们太棒了,我很高兴我终于找到了开始的方法!
【问题讨论】:
标签: sql-server timeout sqlclient timeoutexception