在客户端上引发错误“Timeout”以触发针对数据库的一些命令。
我的第一个校正测试选项是将CommandTimeout增加到99999 ...但我担心这种处理会产生更多问题。
经历过吗?? 我想知道我的问题是否相关,和/或是否还有其他选择更加强大和优雅的纠正。
答案 0 :(得分:0)
你认为提高超时是正确的方法是正确的。通常,我会查找围绕超时运行的日志运行查询。它们通常会在持续时间和阅读方面脱颖而出。
然后我将使用此方法减少查询运行时间:
如果是导致问题的报告,并且您无法让它更快地运行,您可能需要开始考虑设置报告数据库。
答案 1 :(得分:0)
CommandTimeout是客户端等待服务器响应的时间。如果查询在主VCL线程中运行,则整个应用程序被“冻结”,并且可能被Windows标记为“无响应”。那么,您希望您的用户在冻结的应用程序中等待99999秒吗?
通常,将Timeout值保留为默认值,而不是像Sam建议的那样专注于调整查询。如果您碰巧有长时间运行的查询(即某些后台数据移动,存储过程中的计算等),请将CommandTimeout设置为0(= INFINITE),但在单独的线程中运行它们。