将sql查询命令超时时间设置为max的负面影响

本文关键字:max 影响 设置 查询 sql 命令 超时 时间 | 更新日期: 2023-09-27 18:08:13

我在执行sql查询时遇到超时异常。所以我在c#代码中增加了超时时间,现在它工作得很好。

DbCommand.CommandTimeout = 3600;

这一定是由于数据库中的数据增加而发生的。我不希望在将来的任何其他场景中出现此异常。

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

将sql查询命令超时时间设置为max的负面影响

  1. 对你期望的运行速度有一个合理的期望总是一个好主意,但坦率地说,很少有必要指定一个显式的超时-通常只有当你知道某事将花费很长时间,并且你目前无法在db中修复它时,才会这样做。这是例外,不是常态。如果您有封装数据访问的实用程序代码,您可以提供集中的默认超时

  2. 设置长超时的唯一积极方面是作为一个创可贴:使其工作。然而,这是一种自动的代码气味——你真的应该看看为什么要花这么长时间,然后重新构建它。这可能会引发重大的实际问题,包括长时间运行阻塞的操作(甚至可能是无法检测到的死锁),将永远不会完成;另一个更直接的负面影响是它会分散你对解决真正问题的注意力

您还可以在SQL数据库侧设置超时时间

只需在存储过程或查询

中添加以下代码
        EXEC SP_CONFIGURE 'remote query timeout', 1800
        reconfigure
        EXEC sp_configure