【发布时间】:2016-06-20 12:23:33
【问题描述】:
model.mTable = m_ctx.Shop
.Where(t => t.CustomerID== model.mFilter.CustomerID)
.Select(f => new GroupedData
{
iGroupID = f.iCustomerID,
dtGroupDt = new DateTime(f.dtDate.Year, f.dtDate.Month, f.dtDate.Day, f.dtStartTime.Hours, f.dtStartTime.Minutes, f.dtStartTime.Seconds, f.dtStartTime.Milliseconds),
})
.OrderByDescending(f => f.dtGroupDt)
.Take(2)
.ToList();
Shop 是表,CustomerID 是表的主键,但是如果有很多数据,那么这个查询会给我超时异常。有没有办法优化这个查询?
【问题讨论】:
-
是的。可能是如果他每天购买一些物品。确切地说,CustomerID 是一种虚拟的东西。如果我说我需要它来假设在 5 月 5 日 10 分钟后刷新的实时数据!
-
如果您在选择之前下订单,它会改变什么吗?但是为什么每个日期时间部分都有一个列,而不是只有一个
dtGroupDt-datetime类型的列? -
可能在
Select之前使用OrderByDescending(t => t.dtDate).ThenBy(t => t.dtStartTime)会更快。 -
我会按照 FrozenDeath 所说的去做,但我也会尝试抓取它生成的查询,看看是否可以围绕它建立索引。