.NET5必备工具——EF大数据批量处理----Bulk系列

Posted webmote

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET5必备工具——EF大数据批量处理----Bulk系列相关的知识,希望对你有一定的参考价值。

之前做项目的时候,如果在大批量操作数据时,性能不好.因为在框架中使用了EntityFramework,于是就搜索到某著名插件,Z系列。

1.安装

在这里插入图片描述
然后在类里面添加引用之后,使用DbContext就可以直接点出来。

2.博客园有人做过对比试验

我们直接拿数据说话吧.

  • EF传统做法: 1000条插入,6秒,10000条,117秒,100000条,> 2分钟,已经没耐心了.
  • 使用插件: 10W条,3.59秒;20W条:6秒时间

快了大约20倍不止.

3.快的原理

一句话:整合和数据库的交互

  • EF自带的方法,会增加与数据库的交互次数,一般地,EF的一个上下文在提交时会打开一个数据连接,然后把转换成的SQL语句一条一条的发到数据库端,然后去提交,下面的图片是我用SQL Server Profiler记录的和数据库交互的操作,这只是一小部分,试想,如果你的数据量达到万级别(更不用说百万,千万数据了),那对数据库的压力是很大的

  • 批量添加的方法是生成一条SQL语句,和数据库只交互一次。那为什么图片中有多条Insert语句呢,当你使用BulkInsert时,如果数据达到4万之前,那在SQL的解释时,也是很有压力的,有多情况下会超时,当然这与你的数据库服务器有关,但为了性能与安全,将Bulk操作变为分批提交,即将上W的数据进行分解,分用1W数据量提交一次,这样,对数据库的压力就小一些。

4.关于插件授权

插件本身是免费的! 但不要高兴太早,当你下载插件后,仅可使用1个月,1个月后会弹出授权过期的提示,无法使用.

你需要再次下载插件,又可以用一个月了. 这意味着你不可以用在商业软件内.

因此,我特意为大家准备了长期版的下载,感兴趣的朋友到我的下载里拿吧.
最新版5.130,支持.net5 .net core EF5

以上是关于.NET5必备工具——EF大数据批量处理----Bulk系列的主要内容,如果未能解决你的问题,请参考以下文章

大数据分析处理必备工具

.NET5中的EF Core数据层仓储模式

猿创征文|大数据开发必备的数据采集工具汇总

大数据必备的工具

EF Core中高效批量删除更新数据的Zack.EFCore.Batch发布三个新特性

PostgreSQL 上的 EF Core 批量删除