我正在使用 ADO.Net SqlCommand 类型并将 CommandTimeout 设置为 30 秒。
我的问题是连接/命令不断超时导致未处理的异常导致我的系统崩溃!
我尝试检索的数据对系统至关重要——因此我想修复超时而不是添加异常处理重试逻辑。
所以我的问题是;您如何避免/修复数据库超时问题?
我不想将超时设置为大于 30 秒的值,因为我有时间关键型代码。
谢谢
最佳答案
- 处理异常,以免它们使您的系统崩溃
- 修复您的数据库调用,以免它们超时
上述两个问题都必须实现。数据库调用总是会抛出异常,无论您采取何种预防措施,因此您必须处理异常。
如果您的通话时间超过 30 秒,则意味着您要么进行大量处理,要么一直处于阻塞状态。您很可能一直被阻止。要减少阻塞,请减少锁定的范围和持续时间。对这样一个一般性问题给出更详细的回答意味着基本上要重申事务处理理论的所有原则......
关于c# - SQL 2005 随机连接超时/关于数据库超时的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1000567/