2013-08-01 36 views
3

我有一个存储过程,当直接对数据库执行时需要1秒运行。它返回46行数据。SQL Azure存储过程超时问题

存储过程在我的网站代码中执行并返回数据以创建报告。

这与本地的预期完全一致,需要很短的时间(1/2秒)来加载报告。首次部署网站时,报告按预期工作。

但是,经过一段时间(大约半小时)之后,报告无法加载,因为存储过程超时。

为了解决这个问题,如果我放弃并创建过程,它将重新开始工作,但这显然不是解决我的问题的方法。

的存储过程调用这样的代码:

DataSet content = new DataSet(); 

Database db = DatabaseFactory.CreateDatabase(); 
DbCommand cmdSearchQuestionLibrary = db.GetStoredProcCommand("SP_NAME"); 

db.AddInParameter(cmdSearchQuestionLibrary, "@Param1", DbType.Int64, Id); 
db.AddInParameter(cmdSearchQuestionLibrary, "@StartDate", DbType.DateTime, dtStartDate); 
db.AddInParameter(cmdSearchQuestionLibrary, "@EndDate", DbType.DateTime, dtEndDate); 
content = db.ExecuteDataSet(cmdSearchQuestionLibrary); 

有没有人经历过这个?或者知道可能会导致问题的原因是什么?

+0

尝试重新编译运行中的SP。这可能会缩小问题的范围。 [见这里](http://blog.sqlauthority.com/2010/02/20/sql-server-recompile-stored-procedure-at-run-time/) –

回答

0

有时,找出问题的最好方法是查看当时数据库中发生了什么。一个常见原因可能是基于阻止查询。

如果有帮助,我们的Cotega数据库监控服务免费提供analyze a SQL Azure database的功能,该功能执行用于查找此类问题的大多数常见查询。这包括阻止可能提供一些额外见解的查询。

我希望这会有所帮助。

0

我同样的问题,存储过程用于工作多年,然后有一天它开始超时。 我重新编译存储过程并再次发布Web应用程序。然后超时问题不再显示。