【发布时间】:2021-09-06 02:03:43
【问题描述】:
这个查询大约需要 5 分钟才能返回 60 条记录。
我可以做些什么来提高性能?
var values = await (from x in _context.things.DefaultIfEmpty()
let p = _context.MatchedThings.Where(a => a.Status == Status.Active)
.DefaultIfEmpty()
.AsNoTracking()
select new ThingReport
{
thing = x,
PreferredRate = x.Rate,
CreatedDate = x.CreatedDate,
IsMatched = (p == null ? false : p.Any(y =>
(y.MyThingId == x.Id || y.PairedThingId == x.Id)
&& (y.MatchedThingStatus == MatchedThingStatus.Matched || y.MatchedThingStatus == MatchedThingStatus.Fulfilled || y.MatchedThingStatus == MatchedThingStatus.Processing
|| y.MatchedThingStatus == MatchedThingStatus.Completed || y.MatchedThingStatus == MatchedThingStatus.Refunded)
)),
MatchedOrder = p
}).OrderByDescending(a => a.CreatedDate)
.ToListAsync();
【问题讨论】:
标签: sql sql-server performance linq entity-framework-core