gpt4 book ai didi

.NET多种数据库大数据批量插入、更新(支持SqlServer、MySql、PgSql和Oracle)

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章.NET多种数据库大数据批量插入、更新(支持SqlServer、MySql、PgSql和Oracle)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

功能介绍 (需要版本5.0.45)

大数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 。

当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 。

操作数据库达到极限性能 。

功能用法

BulkCopy性能远强于现有市场的 ORM框架,比 EFCore Efcore.Bulkextension快30% 。

BulkUpdate吊打现有所有框架是EFCoreEfcore.Bulkextension 2-3倍之快 。

?
1
2
3
4
5
6
7
8
9
//插入 100万 10秒不到
db.Fastest<RealmAuctionDatum>().BulkCopy(GetList()); //性能 比现有任何Bulkcopy都要快30%
 
//更新
db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList()); //更新 吊打所有框架N倍,30列100万8秒更新完
db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList(), new string []{ "id" }, new string []{ "name" , "time" }) //无主键用法
 
//表设置别名
db.Fastest<RealmAuctionDatum>().AS( "tableName" ).BulkCopy(GetList())

数据库支持

数据库 API 支持自增
SqlSever 全支持

MySql 。

连接字符串要加AllowLoadLocalInfile=true 。

全支持
PgSql 全支持
Oracle BulkCopy

性能测试

插入方案SqlSugar VS EFCoreEFCore.BulkExtensions 。

10万条数据 30列 ,可以看出EFCore.BulkExtensions在第一插入性能非常慢,正常情况下大数据插入也就比第一次 。

.NET多种数据库大数据批量插入、更新(支持SqlServer、MySql、PgSql和Oracle)

在更新方面SqlSugar也利用了bulkCopy方式进行更新,这一方面.NET 除了EFCore.BulkExtensions 。

并没有发现有相关的产品(收费除外),在更新操作方案 SqlSugar基本上是独一无二的 。

EFCore.BulkExtensions缺点只支持 SqlServer并且性能不如SqlSugar 。

使用疑问

  • 比如Sqlite ... 还不支持怎么办?

答:Sqlite普通插入加上事务就已经是市场上优秀水平了 (后续争取在技术上有突破支持SQLITE) 。

db.Insertable(insertObj).ExecuteReturnIdentity();//普通插入并不慢 ,列不多情况1秒可以插入1万 。

  • 什么情况用db.Fastest

答: db.Fastest主要是用于大数据插入、更新处理,如果1000条以下就没有必要使用了,毕竟支持的API没有普通插入丰富,在小数据插入上也并没有太多优势,db.Fastest性能主要强大1000以上的数据处理 。

老版本

老版本可以这么用,性能不如db.Fastest 。

?
1
2
3
4
5
6
7
8
//(3)、blukCopy插入
//只适合1万以上超大数据插入或者上面数据插入慢情况,小数据插入性能不行,不是所有库都支持
  
db.Insertable(List<实体>).UseSqlServer().ExecuteBulkCopy()
  
db.Insertable(List<实体>).UseMySql().ExecuteBulkCopy() //高版本Mysql.data驱动,连接字符串要加AllowLoadLocalInfile=true
  
db.Insertable(List<实体>).UseOracle().ExecuteBulkCopy() //5.0.3.8-Preview

源码下载:

https://github.com/donet5/SqlSugar 。

sqlsugar已经持续更新7年之久,也越来越完善 ,如果说EF或者其它ORM不更新了,那么多一个开源就是多一个选择.

谢谢支持 ,随着大数据库时代的到来,用户对数据处理也要求越来越高,一款海量数据的读、写、更新的框架必不可少 。

到此这篇关于.NET多种数据库大数据批量插入、更新(支持SqlServer、MySql、PgSql和Oracle)的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://www.cnblogs.com/sunkaixuan/p/15587149.html 。

最后此篇关于.NET多种数据库大数据批量插入、更新(支持SqlServer、MySql、PgSql和Oracle)的文章就讲到这里了,如果你想了解更多关于.NET多种数据库大数据批量插入、更新(支持SqlServer、MySql、PgSql和Oracle)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com