欢迎光临
我的个人博客网站

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

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

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

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

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

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

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

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

赞(0) 打赏
未经允许不得转载:张拓的天空 » EF Core取出数据之后的数据循环速度优化
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏