插件随着时间的推移变得越来越慢?

时间:2012-11-16 04:46:05

标签: sql-server entity-framework entity-framework-4 sql-server-2012 entity-framework-5

我在console app中使用C#编写了一个简单的VS.NET 2012。我正在使用一个带Entity Framework 5的简单数据库(模型优先)。我有两个表,客户电子邮件。每封电子邮件记录都有对客户记录的引用。

我创建了客户和电子邮件对象,将它们保存到EF上下文中的集合,并且在创建了1000条记录之后,我在上下文中调用了保存更改。 1000批次变得越来越慢,从1分钟开始1000,然后到第9000条记录,1000批次需要4分钟才能完成。

我一次从一行CSV文件中读取数据,在每一行上进行简单拆分,然后构建简单对象。

我的问题是这是EF5,还是我在数据库中缺少index?我没有做其他的预处理。我正在使用SQL Server 1012

2 个答案:

答案 0 :(得分:2)

您的DbContext跟踪所有对象,即使它们已保存。 DbContext的大小可能是导致应用程序变慢的原因。

我建议在1000次插入后处置DbContext并创建新的DbContext

答案 1 :(得分:0)

您可以使用此

禁用对象轨道
context.Configuration.AutoDetectChangesEnabled = false;