我们正准备将一个新系统推向生产环境,并且遇到了与SQL的连接超时的问题。
这个产品主要是由SQL开发人员编写的,他们不熟悉.NET的功能,我们发现超时存储过程的复杂性非常高。发生了许多事情,比如决策、控制流程,以及调用其他10个存储的进程进行计算。
我的直觉是,这需要重构到一个进行决策的.NET引擎中,然后简化SQL语句来处理数据和数据质量。我需要帮助来提出这个论点。SQL开发人员表示,10分钟的超时适用于生产中的此系统。
.NET已经设置了一个默认超时,这对于大多数情况都是合理的...设置SQL连接超时的实际上限是多少?
发布于 2013-03-20 03:05:09
首先,在考虑将代码转移到C#之前,我会检查存储过程和所有嵌套过程是否都得到了适当的优化。SQL事件探查器、执行计划和统计信息都对诊断此问题非常有用。
如果sql已经是最优的,那么您可能必须考虑用户如何与站点交互,例如,操作是否可以被调度/排队,然后用户在完成收集结果时再回来。
用C#重写听起来像是一项很大的工作,你真的需要了解sql在做什么,以及重写它会有什么帮助。
发布于 2013-03-20 02:14:28
我认为除了增加超时之外,您没有其他选择,没有实际的限制。我猜您没有时间用C#重写所有内容。唯一的问题是看到它将是脆弱的系统,如果连接中断,你必须确保你的数据库保持在有效状态。
发布于 2013-03-20 02:18:31
我相信您谈论的不是SQLConnection超时,而是SQLCommand超时,这取决于您的应用程序。
有很大的超时时间并不是不切实际的,特别是当你在执行复杂的逻辑时,
https://stackoverflow.com/questions/15507270
复制相似问题