【问题标题】:Performance difference between bulk insert query and loop over single entity insert query in repository pattern build over entity framework存储库模式中基于实体框架构建的批量插入查询和循环单实体插入查询之间的性能差异
【发布时间】:2014-05-31 05:08:39
【问题描述】:

批量插入查询和循环在 sql 数据库上的单个实体插入查询之间是否存在性能差异

   //bulk entities insert query

void Insert(IEnumerable<TEntity> entities);

foreach(entity in entities)
{
   // use single entity insert query

   void Insert(TEntity entity);
}

【问题讨论】:

  • 本能地,我会说批量插入在最坏的情况下不会比循环更糟糕,只会相等或更好。
  • 既然你使用的是实体框架,那么在这两种情况下调用SaveChanges() 不是都会保存所有内容吗?此外,当您的问题有更新时,请编辑原始问题。
  • 你为什么不两个都试试,自己看看?
  • Insert(IEnumerable)做什么做什么?它真的使用 BULK INSERT - 请注意,这个术语已经意味着什么! - 或等效的直接插入; 它是否在内部循环并使用 EF 来插入每个项目(一次一个)?如果它使用相同的方法(即 EF 托管对象图),那么它可能不重要循环在哪里并且它不是“批量插入”。

标签: c# asp.net entity-framework repository-pattern


【解决方案1】:

使用插入范围。也许第一个已经在使用它,第二个没有,并且在添加大量实体时会变慢。

【讨论】:

  • 您能否解释一下这对性能有什么影响,并可能链接到支持证据?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
相关资源
最近更新 更多