我有一个包含22000行的CSV文件。我第一次读取csv文件中的所有行,并使用Entity Framework db.SaveChanges()
将它们添加到数据库中,其中保存更改需要45秒。然后下次它读取所有记录,只添加新记录并更新现有记录,这需要2分钟......
什么是插入批量记录的最佳方式?
答案 0 :(得分:0)
使用EF保存时,会发生3次disticnt操作,速度差别很大。插入和删除是在一次调用SQL服务器中完成的,但更新一次只完成一条记录,因此它可以检查并发问题并向您报告哪些实体失败了。
如果你想坚持使用EF,你应该始终INSERT,然后在服务器上执行MERGE(SQL命令)。如果您没有能力创建存储过程,也可以从C#中的sqlcommand执行MERGE。
最好的选择,最快的是使用BULK INSERT,如果可以的话。