2010-11-18 90 views
0

我有一个选择查询,如果我从SQL Server Management Studio(它已经意味着它是一个MSSQL数据库)运行它需要大约10秒运行。 Select查询在一个有几个连接的视图上工作,这就是执行原始SELECT语句需要大约10秒钟的原因。LINQ选择查询结果超时

但是,等价的LINQ语句最终会出现超时异常。为什么会发生这种情况以及如何解决问题?

+3

你能后的LINQ和SQL查询两者兼而有之? – scmccart 2010-11-18 21:42:59

+0

返回多少数据? – 2010-11-18 21:49:05

+0

@Albin:只返回56条记录。 – 2010-11-18 21:56:26

回答

0

我曾经有过类似的情况,当一个存储的过程从SSMS调用时花费大约1秒钟执行,但是当从前端应用程序调用同一过程(具有相同参数)时超时。我运行了SQL Profiler,看到当我从前端调用存储过程时得到的执行计划不同于我从SMSS运行存储过程时得到的执行计划(直到日期我不知道为什么会发生这种情况)

因此,只要尝试运行SQL事件探查器来查看是否由于某种原因查询优化器在使用LINQ执行查询时选择了不同的查询计划。 (您需要更改探查器中的标准选项以使其显示查询计划)

0

ARITHABORT默认情况下在SSMS中为ON,而默认情况下为SqlClient连接为OFF。

看看是否解决您的问题:

new SqlCommand("SET ARITHABORT ON", connection).ExecuteNonQuery();