如果我从SQL Server Management Studio(已经暗示它是MSSQL数据库)运行它,那么我有一个Select运行大约需要10秒的查询。 Select查询适用于具有几个连接的视图,这就是执行原始SELECT语句大约需要10秒的原因。
然而,等效的LINQ语句最终会出现超时异常。为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:0)
我曾经有类似的情况,从SSMS调用时,存储的程序执行大约需要1秒钟,但是从前端应用程序调用时,相同的程序(具有相同的参数)会超时。我运行SQL分析器,看到我从前端调用存储过程时获得了不同的执行计划,而不是从SMSS运行sproc时获得的执行计划。(到目前为止我不知道为什么会发生这种情况)
因此,只需尝试运行SQL事件探查器,以查看查询优化器是否由于某种原因在使用LINQ执行查询时选择了不同的查询计划。 (您需要更改分析器中的标准选项以使其显示查询计划)
答案 1 :(得分:0)
ARITHABORT在SSMS中为ON,默认情况下为SqlClient连接为OFF。
看看这是否解决了您的问题:
new SqlCommand("SET ARITHABORT ON", connection).ExecuteNonQuery();