Я написал запрос LINQ, который выполняет orderby
в контексте базы данных Entity Framework Core (.NET Core 2.0.7), используя метод расширения Sum
.Он отлично работает на небольшой выборочной базе данных, но при работе с более крупной базой данных ~ 100 000 записей он становится значительно медленнее и использует больше ресурсов ЦП.Я вставил соответствующий код ниже.Есть ли способ выполнить Sum
быстрее?(по сути, это средневзвешенное значение для произвольного числа кортежей).
var iqClientIds = (from stat in context.Set<EFClientStatistics>()
join client in context.Clients
on stat.ClientId equals client.ClientId
group stat by stat.ClientId into s
orderby s.Sum(cs => (cs.Performance * cs.TimePlayed)) / s.Sum(cs => cs.TimePlayed) descending
select new
{
s.First().ClientId,
})
.Skip(start)
.Take(count);
Спасибо!