【问题标题】:LINQ Performance Optimization using Group By使用 Group By 的 LINQ 性能优化
【发布时间】: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


【解决方案1】:

起初我认为您必须删除不必要的 ToList() 调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    相关资源
    最近更新 更多