【发布时间】:2014-07-11 22:36:58
【问题描述】:
我在 C# LINQ 中有一个 group by 子句,执行时间超过 5 分钟。在生产环境中由于大规模数据而超时。有没有办法优化这个 LINQ 查询?感谢任何帮助。
var qFilingReview = (from x in FilingReviewsList
group x by new { x.filingAnswer.Grouping, x.filingAnswer.Instructions, x.filingReview.Name, x.filingQuestion.Number } into grp
select new { result = grp.FirstOrDefault() })
.ToList()
.OrderBy(k => k.result.filingQuestion.Id)
.ThenByDescending(k => k.result.filingAnswer.Id);
【问题讨论】:
-
你真的需要
ToList电话吗? -
这是什么? LINQ转SQL?实体框架?通常 linq 到对象?如果它映射到 SQL 查询,那么您需要使用 SQL Profiler 来获取执行 SQL 的执行计划并找到瓶颈。也许有一些索引遗漏了
-
谢谢!是的。我做到了,我需要检查是否可以添加一些索引以使其更好。但是删除不必要的 ToList() 有助于优化性能。
标签: c# performance linq optimization group-by