我有一段代码如下所示:
using(var ctx = new my_dbEntities())
{
var users = ctx.Users.OrderBy(y=>y.LastUpdatedAt).Take(200).ToList();
}
我试过这样的方法:
using(var ctx = new my_dbEntities())
{
var users = ctx.Users.OrderBy(y=>y.LastUpdatedAt).ThenBy(y=>y.StatsLastUpdated).Take(200).ToList();
}
但是这个查询太慢了,需要花费太多的时间才能按这个顺序提取200条记录。。
是否有更好的解决方案,以便我可以通过LINQ加快查询速度?
有人能帮我吗?
各位,完整的查询是这样的:
users = ctx.SearchedUsers.AsNoTracking().AsEnumerable()
.Where(y => y.InQueue==false
&& (DateTime.Now - y.LastTimeSearchedAt).Value.TotalDays < 10)
.OrderBy(x => (DateTime.Now - x.LastTimeSearchedAt).Value.TotalDays)
.ThenBy(y=>y.LastUpdatedAt).Take(200).ToList();
我已经添加了AsNoTracking()并为这两个列编制了索引,但仍然花费了太多的时间:(