2013-12-11 36 views
2

我在一个新的C#项目中工作,需要一些帮助。SQL超时在C#代码中过期

该系统具有使用Quartz API和一个他们不工作了预定的一些工作。

我尝试手动执行该方法和得到这个错误

“超时过期。之前的操作的完成超时时间已过或服务器未响应”。

在这条线(捕捉{}叫):

TList<TbBooking> allBooks = DataRepository.TbBookingProvider.Find(bQuery); 

变量bQuery与4200号的查询和一些参数样1个月的时间,标志等

我检查了SQL超时设置,它是10分钟(默认),但在代码输入.Find()方法(少于2分钟)后几秒钟内出现消息,但使用SQLMS很快执行查询。

我正在考虑运行命令sp_updatestats但我想先看看您的建议。

p.s.该项目使用的CodeSmith,这是的funcionality工作自2010年以来

+0

缺少一个巨大的表上的索引? (随着时间的推移,查询是否运行速度较慢?)或者在其他地方存在一个锁,阻止查询执行? (对于相同数量的项目,这是一个突然的问题吗?)另外,在SSMS中直接运行命令*时的性能如何? (这个计划显示了什么) – user2864740

+0

我怀疑问题是我的应用程序中的一些设置,因为查询返回的结果少于10秒。我改变了defaultCommandTimeout。 –

回答

0

我用sp_updatestats并没有奏效。我为该列创建了一个索引,但没有工作。所以我在名为defaultCommandTimeout的ProviderBase类中找到了一个属性设置为30秒。我将其在我的app.config文件中更改为120,查询再次运行。