我有一个非常大的实体框架实现(100多个表/实体)。在进行更新时第一次调用SaveChanges时,我遇到了18秒的等待时间。这对于大型实体框架模型是否常见?我听说将EF模型划分为更小的块是提高性能的一种方法。我想知道这是否是唯一的方法?在这一点上进行分区似乎需要做很多工作。
谢谢!
答案 0 :(得分:1)
我在我的一个项目中看到同样的问题。第一次调用SaveChanges需要大约12秒和完整的cpu时间,以下调用不需要。
在我使用预生成视图之前,第一次实体轮询几乎同时进行。现在12秒的第一次轮询延迟消失了,但第一次SaveChanges调用仍然需要很长时间。也许有一种方法可以为SaveChanges预生成一些代码......
[编辑] 我只想提一下,我设法通过改变数据库结构来摆脱第一次保存的延迟。保存花了这么长时间的实体是一个大表,对另一个表有很多外键约束(不要问)。删除外键约束就可以了。 [/编辑]
答案 1 :(得分:0)
不,这不是预期的行为。我们的实体模型和您的实体模型一样大,我们没有看到这一点。在您尝试解决问题之前,您需要对应用程序进行概要分析,以确定问题的实际情况。在不知道您的分析结果是什么的情况下,我无法为您提出解决方案。
答案 2 :(得分:0)
我们在一次操作中保存EF中的大多数数据的地方是几百行遍布ca. 80桌。这有一个次秒的响应时间。
它必须与其他东西有关,需要检查的事项是: