【发布时间】:2013-12-11 19:40:08
【问题描述】:
我在一个新的 C# 项目中工作,需要一些帮助。
系统有一些使用 Quartz api 安排的作业,其中一个不再工作。
我尝试手动执行该方法并收到此错误
“超时已过。在操作完成之前超时时间已过或服务器没有响应。”
在这一行(调用了 catch{}):
TList<TbBooking> allBooks = DataRepository.TbBookingProvider.Find(bQuery);
变量 bQuery 有一个包含 4200 个 ID 和一些参数的查询,例如 1 个月期间、标志等。
我检查了 SQL 超时设置,它是 10 分钟(默认值),但在代码输入 .Find() 方法(不到 2 分钟)后几秒钟内就会出现消息,但使用 SQLMS 查询执行得非常快.
我正在考虑运行命令 sp_updatestats 但我想先看看你的建议。
附言该项目正在使用 codesmith,并且此功能自 2010 年以来一直在运行。
【问题讨论】:
-
在一个巨大的表上缺少索引? (查询是否随着时间的推移运行较慢?)或者在其他地方可能有一个锁阻止查询执行? (对于相同数量的项目,这是突然出现的问题吗?)另外,在 SSMS 中直接运行命令时的性能如何? (计划显示了什么。)
-
我怀疑问题出在我的应用程序中,因为查询不到 10 秒就返回了结果。我更改了 defaultCommandTimeout。
标签: codesmith