entity framework 5 批量增删改效率优化_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > entity framework 5 批量增删改效率优化

entity framework 5 批量增删改效率优化

 2014/12/27 3:15:59  深思工作室  程序员俱乐部  我要评论(0)
  • 摘要:对于数据的批量增删改最慢的就是操作一条就提交一次事务。以下是对增删改操作的优化测试同样的300条数据批量新增只提交一次事务用时:10673.5444ms批量新增只提交一次事务并把context.Configuration.AutoDetectChangesEnabled=false用时:5284.5425ms批量修改只提交一次事务用时:3472.8314ms批量修改只提交一次事务并把context.Configuration.AutoDetectChangesEnabled=false用时
  • 标签:Framework 效率 优化

对于数据的批量增删改最慢的就是操作一条就提交一次事务。

以下是对增删改操作的优化测试

同样的300条数据

  批量新增只提交一次事务                                 

  用时:10673.5444ms

  批量新增只提交一次事务并把context.Configuration.AutoDetectChangesEnabled = false  

  用时:5284.5425ms

 

  批量修改只提交一次事务                                 

  用时:3472.8314ms

  批量修改只提交一次事务并把context.Configuration.AutoDetectChangesEnabled = false  

  用时:1993.7855ms

 

  批量删除只提交一次事务                                 

  用时:5961.3264ms

  批量删除只提交一次事务并把context.Configuration.AutoDetectChangesEnabled = false  

  用时:1346.8273ms

删除有一点特别提醒,我的删除方法使用的是替身删除,而不是先从数据库查出数据再来删除。

两种删除的方法对比

var stu=context.Students.SingleOrDefault(s=>s.StudentNo==23230);
context.Students.Remove(stu);
context.SaveChanges();

var stu=new Student{StudentNo=23230};
context.Students.Attach(stu);
context.Students.Remove(stu);
context.SaveChanges();

 

显然效率的提升是很明显的。

 

发表评论
用户名: 匿名