【问题标题】:Entity Framework context.SaveChanges() slow - SQL Profiler included实体框架 context.SaveChanges() 慢 - 包括 SQL Profiler
【发布时间】:2011-06-29 02:57:56
【问题描述】:

我知道 EF 不适合批处理操作,但我正在尝试了解我们遇到的一个问题。

我们正在循环一个文本文件,其中有 5,000 个产品要插入到我们的数据库中。

在调用 context.SaveChanges() 并查看我看到的分析器时:

审核登录 0MS

RPC:已完成(插入产品的实际查询)显示为 9 个读取和 0 MS 的持续时间

审核注销2750MS

为什么审核日志需要 2 秒以上的时间?实际的 SQL 查询根本不需要任何时间,审计登录也不需要。

这是 EF 的开销吗?有没有人有任何建议?我唯一偶然发现的是预先生成的视图,但不确定这是否有帮助。

【问题讨论】:

  • 这是否意味着它在 2.75 秒内执行了 5000 次插入?

标签: sql-server-2008 entity-framework-4


【解决方案1】:

注销本身不需要 2 秒,分析器显示注销事件的会话持续时间,因此从登录到注销是 2750 毫秒。

在调用注销之前,应用程序中是否发生了一些可能需要一些时间的事情?在插入和注销之间会发生什么?

【讨论】:

  • 我认为它实际上不是 SQL 服务器,我应该更好地表达我的问题。如何调试实体框架以找出导致延迟的原因?我已经通过使用 Linq To Sql 解决了这个问题 - 使用 'dated' orm 批量导入需要 4 小时到 56 秒 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 2012-01-06
  • 2017-03-02
相关资源
最近更新 更多