将sql查询命令超时设置为最大值的负面影响

时间:2014-06-12 09:39:05

标签: c# sql .net

我在执行sql查询期间遇到了超时异常。所以我增加了C#代码的超时时间,现在工作正常。

DbCommand.CommandTimeout = 3600;

这必定是由于数据库中的数据增加而发生的。 我不希望将来在任何其他情况下发生此异常。

  1. 在我的所有方法中添加命令超时行是一个好习惯吗?

  2. 了解此操作的正反两面会很棒。

2 个答案:

答案 0 :(得分:4)

  1. 合理地期望你期望某些东西运行的速度总是一个好主意,但坦率地说,很少需要指定一个明确的超时 - 通常只有当你知道时才会这样做

  2. 设置长时间超时的唯一积极方面是作为创可贴:使其有效。然而,这是一种自动代码味道 - 您应该真正关注为什么花费这么长时间,并重新设计它。这可能会带来重大的实际问题,包括长时间运行阻止操作(可能甚至是无法检测到的死锁),永远不会完成;另一个更直接的消极方面是它分散你的注意力来解决真正的问题

答案 1 :(得分:0)

您还在SQL数据库端设置了超时

只需在存储过程或查询中添加以下代码

        EXEC SP_CONFIGURE 'remote query timeout', 1800
        reconfigure
        EXEC sp_configure