我有一个存储过程,直接对数据库执行时需要 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);
有人以前经历过这种情况吗?或者知道是什么原因导致了这个问题?
最佳答案
你可以尝试的两件事 1. 更新统计信息 (Transact-SQL):https://msdn.microsoft.com/en-us/library/ms187348.aspx
- sp_recompile (Transact-SQL):https://msdn.microsoft.com/en-us/library/ms181647.aspx
关于SQL Azure存储过程超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17990592/