为什么需要这么长时间来更新

时间:2014-03-28 21:51:19

标签: c# .net sql-server entity-framework csv

我有一个包含22000行的CSV文件。我第一次读取csv文件中的所有行,并使用Entity Framework db.SaveChanges()将它们添加到数据库中,其中保存更改需要45秒。然后下次它读取所有记录,只添加新记录并更新现有记录,这需要2分钟...... 什么是插入批量记录的最佳方式?

1 个答案:

答案 0 :(得分:0)

使用EF保存时,会发生3次disticnt操作,速度差别很大。插入和删除是在一次调用SQL服务器中完成的,但更新一次只完成一条记录,因此它可以检查并发问题并向您报告哪些实体失败了。

如果你想坚持使用EF,你应该始终INSERT,然后在服务器上执行MERGE(SQL命令)。如果您没有能力创建存储过程,也可以从C#中的sqlcommand执行MERGE。

最好的选择,最快的是使用BULK INSERT,如果可以的话。