实体框架第一次调用SaveChanges()时为18秒

更新时间:2024-05-09 下载TXT文档 下载Word文档

我有一个非常大的Entity Framework实现(100个表/实体)。进行更新时,第一次调用SaveChanges时我遇到了18秒的等待时间。这对于大型实体框架模型是否常见?我听说将EF模型分成较小的块是提高性能的一种方法。我想知道这是否是唯一的方法吗?此时进行分区似乎需要大量工作。

  • 我应该对EF模型进行分区吗?
  • 我应该使用多个数据上下文实例还是共享静态实例?
  • 您在EF(尤其是SaveChanges())上使用缓慢会遇到哪些性能问题?
  • 谢谢!

    我在我的一个项目中遇到了同样的问题。第一次调用SaveChanges大约需要12秒,并且需要完整的cpu时间,接下来的调用则不需要。

    对实体的第一次轮询大约是在使用预生成的View之前的同一时间进行的。现在已经没有了12秒的第一次轮询延迟,但是第一次SaveChanges调用仍然花费那么长时间。也许也可以为SaveChanges预先生成一些代码... [短码网_DuanMa.NET]

    [编辑]
    我只想提到,通过更改数据库结构,我设法摆脱了第一次保存时的延迟。保存时间很长的Entity是一个很大的表,对另一个表有很多外键约束(不要问)。除去外键约束就可以了。
    [/编辑]

    我们在一次操作中将大多数数据保存在EF中的位置是大约200行。 80张桌子。这有一个亚秒级的响应时间。

    它必须与其他东西相关,要检查的东西是:

    • 在这18秒内有没有使用CPU?通过哪个过程?
    • 等待超时是网络问题吗?
    • 它与构造函数或jit编译有关吗?
    • 1.是的,在我的core2处理器上,我看到50%(即一个处理器为100%)2. DB是本地的,SQLExpress 3.似乎不是...执行登录时,JIT计数器似乎没有增加。
    • @markti:您能否使用任务管理器查看哪个进程正在使用100%的CPU
    • 是的,它是应用程序本身。
    • 您是否有可能进行调试并检查是否是导致峰值的SaveChanges()?
    • 是的肯定是第一次在我们实际写东西(UPDATE或INSERT)的地方调用SaveChanges()。
    • @markti:接下来要检查的是版本/安装,是否安装了一些旧版本,您以前是否安装过Beta版?

    不,这不是预期的行为。我们的实体模型与您的一样大,我们看不到。在开始尝试解决问题之前,需要对应用程序进行概要分析,以找出问题的实质。在不了解分析结果如何的情况下,我无法为您提供解决方案。

    • 好吧,至少我知道问题是我的解决方案:-)

    以上就是短码网小编为大家整理的《实体框架第一次调用SaveChanges()时为18秒》相关内容,希望大家喜欢。

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!

    实体框架第一次调用SaveChanges()时为18秒》文档下载仅供参考学习,下载后请在24小时内删除。

    转载注明出处:https://www.duanma.net/article/35ae6ac9836.html

    回到顶部