SQL Azure存储过程超时问题

标签 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);

有人以前经历过这种情况吗?或者知道是什么原因导致了这个问题?

最佳答案

你可以尝试的两件事 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/

    相关文章:

    mysql - PHP 网页中搜索选项的 SQL 代码

    没有结果的sql返回日期

    sql - NHibernate 的优缺点

    powerbi - Power BI嵌入式,直接查询,不刷新

    azure - Get-AzureRmSqlServerAuditing : The term 'Get-AzSqlServerAuditing' is not recognized as a name of a cmdlet,函数,脚本文件

    sql - 如何使用 VB.NET 的 SMO 类将单个表传输到 MSSQL 服务器中的另一个数据库?

    c# - Azure WebJobs 3.0 上的 IQueueProcessorFactory?

    azure - 在 VSTS 中构建arm模板失败,错误约为 'artifactsLocation'

    azure - 如何在 Azure Function 中使路由参数可选

    azure - 无法在 Azure 中创建 SQL Server 数据库