使用C#& LINQ,我如何加速GroupBy然后Sum?

时间:2015-02-25 02:31:15

标签: c# linq

感谢您的光临。

我有一个类似这样的数据结构:

Flight #  | Airport | Tickets Sold
----------------------------------
123       | SEA     | 4
432       | SFO     | 2
9875      | SEA     | 1
33        | CLT     | 3

实际上,我的桌子有大约20k的记录,我需要确定哪个机场的总票数最高。

我目前正在使用以下代码,但速度非常慢:

    var mostTickets = flights.GroupBy(g => g.OriginAirport.IATA_Code)
        .Select(s => new {s.Key, Sum = s.Sum(su => su.Tickets), Airport = s.Select(se => se.OriginAirport)})
        .OrderByDescending(o => o.Sum).First();

我已经确定GroupBy调用非常快,但是从.Select开始的所有内容都需要大约15秒才能完成约20,000条记录。

毕竟,GroupBy()很慢。

有什么方法可以加快速度吗?

1 个答案:

答案 0 :(得分:-2)

您是否考虑过设置视图?

http://www.w3schools.com/sql/sql_view.asp