我在执行sql查询期间遇到了超时异常。所以我增加了C#代码的超时时间,现在工作正常。
DbCommand.CommandTimeout = 3600;
这必定是由于数据库中的数据增加而发生的。 我不希望将来在任何其他情况下发生此异常。
在我的所有方法中添加命令超时行是一个好习惯吗?
了解此操作的正反两面会很棒。
答案 0 :(得分:4)
合理地期望你期望某些东西运行的速度总是一个好主意,但坦率地说,很少需要指定一个明确的超时 - 通常只有当你知道时才会这样做
设置长时间超时的唯一积极方面是作为创可贴:使其有效。然而,这是一种自动代码味道 - 您应该真正关注为什么花费这么长时间,并重新设计它。这可能会带来重大的实际问题,包括长时间运行阻止操作(可能甚至是无法检测到的死锁),永远不会完成;另一个更直接的消极方面是它分散你的注意力来解决真正的问题
答案 1 :(得分:0)
您还在SQL数据库端设置了超时
只需在存储过程或查询中添加以下代码
EXEC SP_CONFIGURE 'remote query timeout', 1800
reconfigure
EXEC sp_configure