SQL Azure存储过程超时问题

时间:2013-08-01 09:46:52

标签: sql azure azure-sql-database

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

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

这在本地完全符合预期,加载报告需要很短的时间(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);

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

3 个答案:

答案 0 :(得分:2)

你可以试试2件事 1.更新统计(Transact-SQL):https://msdn.microsoft.com/en-us/library/ms187348.aspx

  1. sp_recompile(Transact-SQL):https://msdn.microsoft.com/en-us/library/ms181647.aspx

答案 1 :(得分:0)

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

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

我希望这会有所帮助。

答案 2 :(得分:0)

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