通过更改存储过程的名称来解决ExecuteReader TimeOut

时间:2016-10-13 15:01:55

标签: sql-server entity-framework stored-procedures timeout

今天发生在我身上。 几个月以来,我的MVC.Net应用程序运行良好。今天它在执行这部分代码时遇到了错误。(这是简化版)

var cmd = db.Database.Connection.CreateCommand();
cmd.CommandText = $"mySchema.myStoredProcedureName {param1};
db.Database.CommandTimeout = 0;
db.Database.Connection.Open();  
var reader = cmd.ExecuteReader();

其中db是DbContext EF6。 timeOut出现在最后一行 我尝试了语法"使用"没有成功 我也试过以下,也许连接没有打开

while(db.Database.Connection.State != ConnectionState.Open) {
db.Database.Connection.Open(); }

没有!成功。

存储过程在SSMS上返回结果2秒。

最后,我创建了一个具有其他名称的类似存储过程 然后它奏效了。

我的问题: - MSSQL blackList我的存储过程吗?

1 个答案:

答案 0 :(得分:1)

我不认为它被列入黑名单。您的索引是否可能需要重建?换句话说,重命名真的可能没有解决问题,但幕后的其他一些SQL Server维护呢?

我有根据的猜测是,如果您没有更改任何代码,服务器提供商会对您产生影响。