我有一個LINQ,看起來像這樣:很慢LINQ與在聲明
var something = db.Calculations
.Where(x => x.CalculationDate.Date == justTheDate
&& x.CalculationID == externalObject.CalculationID
&& x.CalculationDate >= minDate
&& x.CalculationDate <= maxDate).GroupBy(x =>
(int)x.CalculationDate.TimeOfDay.TotalMinutes);
其中justTheDate
,minDate
,maxDate
(日期時間)和externalObject.CalculationID
(串)的範圍內發現的所有變量。
當我列舉它(使用類似something.Select(x=>x.Last()).ToList()
)大約需要15秒。有很多數據,但並不接近預期的產量。
無論如何讓這個查詢更快?
談到EF,LINQ不是一個問題 - 它只是一個枚舉語法。問題是數據庫。你有多少條記錄?考慮將索引應用於表格。 –
對其運行'.ToString()'來查看它生成的查詢。您可能可以將其編入索引。 –
聽起來像數據庫上的索引問題。 – prospector