首页 新闻 会员 周边

EF 查询执行时间太慢

0
悬赏园豆:5 [已解决问题] 解决于 2021-04-29 09:25

为什么全表查询时间更短一点?

最后一颗子弹留给我的主页 最后一颗子弹留给我 | 初学一级 | 园豆:180
提问于:2021-04-26 11:20
< >
分享
最佳答案
0

你把两次执行的顺序调换一下, 在看看, ef是有缓存的
第一次GetAll 获取后, ef 帮你缓存了, 第二次GetAll 直接从内存中取

收获园豆:5
Mirck | 初学一级 |园豆:128 | 2021-04-28 17:34
其他回答(3)
0

因为查全表不需要执行你的where条件.......如果你的guidList是一个List的话 你这里慢是慢在 在list里查id 每次都是O(n) 你把这个guidList改成hashset 或者dictionary var map=new HashSet<Guid>(guidList) or var map=guidList.ToDictionary(guid=>guid);

彭小立 | 园豆:634 (小虾三级) | 2021-04-26 11:36

不行,试过很多方法了。只要是第一次去这个表里拿数据就很慢,即使是FirstOrDefault,后面不管怎么取都是比较正常的

0

第一次查慢,是正常的,第二次有缓存,数据库有查询缓存,EF里面也有缓存

不知道风往哪儿吹 | 园豆:2035 (老鸟四级) | 2021-04-26 13:45
0

我感觉你的写法上有问题;

GetAll()是获取全部数据了吗?然后再where条件吗?

如果是的话,建议你先where然后再.....

SonyXbox | 园豆:370 (菜鸟二级) | 2021-04-27 08:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册