.NET 数据库大数据 方案(插入、更新、删除、查询 、插入或更新)
2023/10/8 5:32:44
本文主要是介绍.NET 数据库大数据 方案(插入、更新、删除、查询 、插入或更新),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、功能介绍 (需要版本5.0.45)
海量数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现
当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API
操作数据库达到极限性能
BulkCopy
大数据插入
db.Fastest<DC_Scene>().BulkCopy(lstData); db.Fastest<Order>().PageSize(100000).BulkCopy(insertObjs); //Winfom中要用Task.Run 底层是异步实现
BulkUpdate
大数据更新,通过update 到临时表 然后表对表进行Update Join
db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList())//更新 db.Fastest<RealmAuctionDatum>().PageSize(100000).BulkUpdate(GetList())//更新 //Winfom中要用Task.Run 底层是异步实现
BulkMerge (5.1.4.109)
大数据 : 插入或者更新
//原理Oracle和SqlServer使用了Merge Into+BulkCopy //其他库底层是 db.Storageable(list).ExecuteSqlBulkCopy() db.Fastest<Order>().BulkMerge(List); db.Fastest<Order>().PageSize(100000).BulkMerge(List); //Winfom中要用Task.Run 底层是异步实现
BulkQuery
普通查询就行了性能超快 db.Queryable<Order>().ToList();//比Dapper略快 //分页降低内存 适合复杂的DTO转换和导出 List<Order> order = new List<Order>(); db.Queryable<Order>().ForEach(it=> { order.Add(it); /*禁止这儿操作数据库因为会循环*/} ,2000);
BulkDelete
直接用分页删除就行了
db.Deleteable<Order>(list).PageSize(1000).ExecuteCommand();
Select INTO
表和表之间的导入
Select INTO 表和表之间的导入 //例1:不同实体插入 Select Into db.Queryable<Order>() //.IgnoreColumns(it=>it.Id) 如果是自增可以忽略,不过ID就不一样了 .Select(it=>new { name=it.name,......}) .IntoTable<实体2>(); //例2: 同实体不同表插入 db.Queryable<Order>() //.IgnoreColumns(it=>it.Id) 如果是自增可以忽略,不过ID就不一样了 .IntoTable<Order>("新表名");
SqlSugar ORM更多用法:
Nuget安装 - SqlSugar 5x - .NET果糖网
这篇关于.NET 数据库大数据 方案(插入、更新、删除、查询 、插入或更新)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#