我们该成熟 发表于 2020-12-10 16:56

.Net排查代码过程中,遇到的EF问题

在开发过程中维护以前代码发现部分报表查询相当慢,找到问题了但是不明白,特此发出来与大家讨论下如有对ef机制有深入研究的朋友可以指导下下!   
ps: 图片为有问题的代码,数据库数据约12万,查询出来有效数据只有8000多条

1.使用lambda表达式的方式查询主从表 然后映射将近6分钟,测试过后慢的不是查询而是dto转换,但是数据已经加载在内存中为什么还是这么慢?
https://attach.52pojie.cn//forum/202012/10/163921r0xu3hf6fa00i2af.png?l




2.改用linq直接查询映射整个过程只需要3秒钟

https://attach.52pojie.cn//forum/202012/10/164858k66l8k56ns5848s8.png?l


3.总结问题点
   1.lambda在查询sql方面不如linq吗?
   2.ICollection接收查询出来的数据不是在内存中的吗?8000条数据就算循环也很快的,虽然找到问题,但是实属不明白,还望各位能一起讨论下
   

XuYiXin 发表于 2020-12-10 19:14

可以尝试使用其它orm啊,那这个预热是很慢。。。

XuYiXin 发表于 2020-12-10 19:15

可以尝试优化预热:https://www.cnblogs.com/xcsn/p/9261898.html
页: [1]
查看完整版本: .Net排查代码过程中,遇到的EF问题