首页 > 其他 > 详细

EF Core取出数据之后的数据循环速度优化

时间:2021-07-14 18:07:24      阅读:9      评论:0      收藏:0      [点我收藏+]

客户有个需求,导出页面一个月的数据,大概30W的数据需要一次性导出到EXCEL,因为之前做地太急,没有做异步导出。所以因为循环量过大,超时(1分钟超时)报错。

表结构是 一个 父表,一个子表,父表和子表是一对多的关系,还有一些其他的配置表。

优化步骤1:去掉多余的join,只保留父表,子表两个表查出数据,配置表全部取出放到内存中

优化步骤2:用.AsParallel().ForAll()方法异步循环,异步循环需要用线程安全的集合,不然会丢失数据

完成上面两个步骤后,结果还是超时,然后发现是配置表是List类型导致的,在循环内通过List取查数据,效率太低

优化步骤3:把配置表数据全部转成Dictionary,然后通过字典取配置表数据。

30万的数据在客户的环境里,导出大概用了50多秒,差一点超时,不过好歹是能导出了

EF Core取出数据之后的数据循环速度优化

原文:https://www.cnblogs.com/yxyl/p/15010941.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!