gpt4 book ai didi

c# - 如何计算 EF4 中 SaveChanges 的最佳大小?

转载 作者:行者123 更新时间:2023-12-02 06:04:49 26 4
gpt4 key购买 nike

我正在通过 EF4 将文本文件读入数据库。该文件包含超过 600,000 行,因此速度非常重要。

如果我在创建每个新实体对象后调用 SaveChanges,则此过程大约需要 15 分钟。如果我在创建 1024 个对象后调用 SaveChanges,则时间会减少到 4 分钟。

1024是我任意选择的数字,它没有引用点。

但是,我想知道在调用 SaveChanges 之前是否有最佳数量的对象加载到我的实体集中?如果是这样......你如何解决这个问题(除了反复试验)?

最佳答案

这实际上是一个非常有趣的问题,当上下文变得非常大时,EF 会变得更慢。实际上,您可以通过在批量插入期间禁用 AutoDetectChanges 来解决此问题并显着提高性能。不过,一般来说,您可以在 SQL 事务中包含的项目越多越好。

查看我关于 EF 性能的帖子 http://blog.staticvoid.co.nz/2012/03/entity-framework-comparative.html ,以及我关于如何禁用 AutoDetectChanges 改进此问题的帖子 http://blog.staticvoid.co.nz/2012/05/entityframework-performance-and.html ,这些也能让您很好地了解批量大小如何影响性能。

关于c# - 如何计算 EF4 中 SaveChanges 的最佳大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10773710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com