SQL Azure存储过程超时问题

问题描述 投票:3回答:3

我有一个存储过程,直接对数据库执行时需要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);

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

sql azure azure-sql-database
3个回答
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

0
投票

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

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

我希望这有帮助。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.