我有一个看起来像这样的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秒。有很多数据,但与生产中预期的数据不相近。
无论如何要让这个查询更快?
答案 0 :(得分:4)
您可以使用此代码获取生成的SQL查询:
var objectQuery = something as System.Data.Objects.ObjectQuery;
string strQuery = objectQuery.ToTraceString();
获取查询后,您可以直接在数据库上执行它。如果它再次变慢,你应该为where子句列创建一个合适的索引。