当前位置: 首页 > 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.pierceye.com/news/293720/

相关文章:

  • 网站兼容ie7接私活做网站要不要签合同
  • 广州网站建设首选快优wordpress拖拽建站
  • 网站开发 播放音频amr个人网站设计案例
  • 建设一个网站可以采用那几方案常用的网页制作工具有什么
  • 摄影看图网站河南省交通工程造价信息网
  • 网站架构发展历程的思考和心得体会软件开发网站开发培训
  • 陕西天工建设有限公司网站长安网站建设哪家好
  • 东莞网站的建设重庆妇科医院哪家好医院公立医院
  • 北京用网站模板建站wordpress中文 插件下载
  • 做网站公司哪家正规重庆网站建设重庆
  • 网站转备案申请学校网站建设申请书
  • 宜昌网站建设选择宜昌慧享互动线上店免费推广的软件
  • 网站建设主流语言织梦网站流动广告代码
  • 南京做网站公司哪个网站上做ppt比较好看的
  • 在服务器上搭建网站中国建设银行淮南分行网站
  • 网站建设什么服务器品牌哪个好南京企业制作网站
  • 太原有哪些做网站的公司如何伪原创 网站
  • 设计好的网站网站策划方案详解
  • 建网站潞城哪家强?企业网络推广技巧
  • 怎么建设网站让国外看wordpress 公司内网
  • 虚拟主机购买网站网站值不值得做seo
  • 长沙网站排名优化如何在网站做电子杂志
  • 石家庄科技网站在线解压zip网站
  • 不良网站举报中心官网做网站必须买云虚拟主机吗
  • 网站建设实习wordpress 登陆 插件下载
  • 做耳鼻喉医院网站多少钱北京网站建设营销
  • 济南网站建设就选搜点网络ok外贸平台补贴政策
  • 网站建设 学校百度快照优化培训班
  • 做阀门的英文网站怎么写西安seo服务公司排名
  • 淘宝客网站如何做推广古董手表网站