当前位置: 首页 > news >正文

网站备案 注册用户重庆绝美的十大冷门景点

网站备案 注册用户,重庆绝美的十大冷门景点,wordpress虚拟,阿里接外包吗网站开发背景EntityFramework Core有许多新的特性#xff0c;其中一个重要特性便是批量操作。批量操作意味着不需要为每次Insert/Update/Delete操作发送单独的命令#xff0c;而是在一次SQL请求中发送批量组合指令。EFCore批量操作实践批处理是期待已久的功能#xff0c;社区多次提出… 背景EntityFramework Core有许多新的特性其中一个重要特性便是批量操作。批量操作意味着不需要为每次Insert/Update/Delete操作发送单独的命令而是在一次SQL请求中发送批量组合指令。EFCore批量操作实践批处理是期待已久的功能社区多次提出要求。现在EFCore支持开箱即用确实很棒可以提高应用程序的性能和速度。1对比实践以常见的批量插入为例使用SQL Server Profiler观察产生并执行的SQL语句。// category表添加3条记录并执行保存using (var c new SampleDBContext()){    c.Categories.Add(new Category() { CategoryID  1, CategoryName  Clothing });    c.Categories.Add(new Category() { CategoryID  2, CategoryName  Footwear });    c.Categories.Add(new Category() { CategoryID  3, CategoryName  Accessories });    c.SaveChanges();}当执行SaveChanges(), 从SQL Profiler追溯到的SQLexec sp_executesql NSET NOCOUNT ON;INSERT INTO [Categories] ([CategoryID], [CategoryName])VALUES (p0, p1),(p2, p3),(p4, p5);,Np0 int,p1 nvarchar(4000),p2 int,p3 nvarchar(4000),p4 int,p5 nvarchar(4000),p01,p1NClothing,p22,p3NFootwear,p43,p5NAccessories如你所见批量插入没有产生3个独立的语句而是被组合为一个传参存储过程脚本用列值作为参数如果使用EF6执行相同的代码则在SQL Server Profiler中将看到3个独立的插入语句 。下面是EFCore、EF6批量插入的对比截图① 就性能和速度而言EFCore批量插入更具优势② 若数据库是针对云部署EF6运行这些查询还将产生额外的流量成本经过验证EFCore批量更新、批量删除功能EFCore均发出了使用sp_executesql存储过程批量参数构建的SQL脚本。2深入分析起关键作用的存储过程sp_executesql可以多次执行的语句或批处理 可带参- Syntax for SQL Server, Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse    sp_executesql [ stmt  ] statement  [     { , [ params  ] Nparameter_name data_type [ OUT | OUTPUT ][ ,...n ] }        { , [ param1  ] value1 [ ,...n ] }  ]注意官方限制The amount of data that can be passed by using this method is limited by the number of parameters allowed. SQL Server procedures can have, at most, 2100 parameters. Server-side logic is required to assemble these individual values into a table variable or a temporary table for processing.       // SQL存储过程最多可使用2100个参数3豁然开朗SqlServer sp_executesql存储过程最多支持2100个批量操作形成的列值参数所以遇到很大数量的批量操作EFCore SqlProvider会帮我们将批量操作分块传输这也是我们在实际大批量使用时看到分块发送的原因。EFCore开放了【配置关系型数据库批量操作大小】protected override void OnConfiguring(DbContextOptionsBuilder optionbuilder){    string sConnString  Serverlocalhost;DatabaseEFSampleDB;Trusted_Connectiontrue;;    optionbuilder.UseSqlServer(sConnString , b  b.MaxBatchSize(1));    // 批量操作的SQL语句数量也可设定为1禁用批量插入}总结① EFCore 相比EF6已经支持批量操作能有效提高应用程序的性能② EFCore的批量操作能力由对应的DataBaseProvider支撑Provider实现过程跟背后的存储载体密切相关关注SQL存储过程sp_executesql官方明文显示批量操作的列值参数最多2100个这个关键因素决定了在大批量操作的时候 依旧会被分块传输。③ 另外一个批量操作的方法这里也点一下构造Rawsql 【EFCore也支持Rawsql】  sqlite不支持存储过程为批量插入提高性能可采用此方案var insertStr  new StringBuilder();insertStr.AppendLine(insert into ProfileUsageCounters (profileid,datetime,quota,usage,natureusage) values);var txt  insertStr.AppendLine(string.Join(,, usgaeEntities.ToList().Select(x {       return $({x.ProfileId},{x.DateTime},{x.Quota},{x.Usage},{x.NatureUsage});}).ToArray()));await _context.Database.ExecuteSqlCommandAsync(txt.ToString()); https://github.com/aspnet/EntityFrameworkCore/issues/6604 https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/table-valued-parameters?redirectedfromMSDN
http://www.zqtcl.cn/news/293720/

相关文章:

  • 汽车网站建设费用js怎么做网站
  • 四川万景建设工程有限公司网站做公司网站用什么系统
  • 长沙企业建站系统3d视频制作公司
  • 长沙的网站制作公司网站建设方案的需求分析
  • 电子商务网站发展建设论文网站开发需要经过的几个主要阶段
  • 建设网站外贸做网站必须会php吗
  • 网站建设费用的请示丹徒区建设局网站
  • 上海网站制作机构个人做外贸网站违法吗
  • 咖啡厅网站开发目标汕头最新消息今天
  • 广州做外贸网站的公司简介做行业门户网站注意什么
  • 专业网页网站设计图书成都医院做网站建设
  • 浙江网站建设dyfwzx网站开发的广告词
  • 网站 seo 优化 效果中华室内设计网公众号下载
  • 如何自己建网站企业网站建站快车的优点
  • 目前做网站的公司有哪些管理系统中的计算机应用
  • 百度网站服务器企业网站报价
  • 网站后台账户如何做会计分录电商数据查询平台
  • 素材动图网站90设计app下载
  • 绍兴网站设计公司网站空间位置是什么
  • 高端网站设计品牌珠海网站建设最新报价
  • 做网站的商家怎么赚取流量费房地产怎么做网站推广
  • 企业网站建设基本流程网站积分方案
  • 网站定位与功能分析网站常见故障
  • 深圳电子商务网站制作桂林市防疫最新政策
  • 北京网站建设备案代理网站建设计划建议
  • 湛江公司做网站wordpress如何设置网站地图
  • wordpress攻防优化方案
  • 义乌市建设银行分行网站宜春静态管理
  • 企业网站优化电话17做网店类似网站
  • 南京网站建设黄页网站大全在线看免费