Linq to SQL执行存储过程非常慢

时间:2013-07-03 19:41:09

标签: c# sql asp.net-mvc linq linq-to-sql

我有一个存储过程,我用

调用
Int32 siteID = 1;
DateTime startDate date;
DateTime endDate date;

var result = this.datacontext.GetSummary(siteID, startDate, endDate);

使用linq执行速度非常慢,但在SSMS中这非常快。

当我将SP更改为仅接受开始日期并在SP中创建endDate时:

DECLARE @EndDate date
SET @EndDate = DATEADD(yy,1,@StartDate)

然后执行如下:

var result = this.datacontext.GetSummary(siteID, startDate);

查询真的很快。我传递的确切值是EndDate。

有没有人见过这样的事情。没有传递结束日期的查询在0秒内执行。结束日期需要6分钟。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我会看看正在生成什么sql,你可以看到here如何做到这一点。一旦你得到了sql,看看Linq在将你的查询翻译成SQL时是否做了一些奇怪的事情。