文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

功能介绍 (需要版本5.0.45)

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

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

操作数据库达到极限性能

功能用法

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

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


//插入 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在第一插入性能非常慢,正常情况下大数据插入也就比第一次

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

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

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

使用疑问

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

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

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

老版本

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


//(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)的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯