Vin*_*oni 0 c# linq optimization
我目前在一张大约90k行的表中.在执行清理并将所有行放入"历史表"之前,它将长大约1kk~5kk.所以,当我运行以下查询时(MyEntities是一个ObjectSet):
MyEntities.Skip(amount * page).Take(amount).ToList();
Run Code Online (Sandbox Code Playgroud)
此查询大约需要1.2秒...但是当我使用OrderBy和ThenBy运行以下查询时:
MyEntities.OrderBy(b => b.Day).ThenBy(b => b.InitialHour).Skip(amount * page).Take(amount).ToList();
Run Code Online (Sandbox Code Playgroud)
此查询大约需要5.7秒.有一种方法可以优化第二个查询吗?
一些建议:
Day和InitialHour编制索引.编辑:好的,所以它看起来MyEntities实际上被声明为IEnumerable<MyEntity>,这意味着一切都将在进程中完成...所有LINQ调用将通过Enumerable.Select等,而不是Queryable.Select等等.只需将声明的类型更改MyEntities为IQueryable<MyEntity>并观察它飞行. ..
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |