实体框架查询速度较慢,适用于小型结果集
本文关键字:适用于 小型 结果 框架 查询 速度 实体 | 更新日期: 2023-09-27 17:55:57
所以我有下面的EF查询,它从平面表中返回大约12,000条记录。 我使用的投影仅选择必要的字段(大约 15 个),然后将它们放入自定义类的列表中。 这需要将近 3 秒,对于 12,000 条记录来说,这似乎很长。 我尝试过用"read uncomitted"将整个事情包装在事务 scrope 中,我也尝试使用"AsNoTracking()"。 两者都没有任何区别。 有人知道为什么这方面的表现会如此糟糕吗?
List<InfoModel> results = new List<InfoModel>();
using (InfoData data = new InfoData())
{
results = (from S in data.InfoRecords
select new
{
...bunch of entity fields...
}).AsEnumerable().Select(x => new InfoModel()
{
...bunch of model fields...
}).ToList();
}
这很难回答,因为有很多事情会影响你的网络,你的sqlserver或Windows服务器中其他请求的数量,你的模型,....
尽管有最新版本,但生成的查询的质量和实体框架的性能有了很大的提高,在速度方面远远低于其他人。您可以查看一些性能注意事项 https://msdn.microsoft.com/en-us/data/hh949853.aspx
速度很重要,3 秒对您来说太多了,可能我不会使用实体框架来检索这么多行,对我来说,当您只需要一些项目但不需要数千项时,如果速度很重要,实体框架很棒。
为了提高速度,请使用许多其他ORM,例如Dapper,Stackoverflow使用的ORM非常快。