.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条数据就算循环也很快的,虽然找到问题,但是实属不明白,还望各位能一起讨论下
可以尝试使用其它orm啊,那这个预热是很慢。。。 可以尝试优化预热:https://www.cnblogs.com/xcsn/p/9261898.html
页:
[1]