为什么更新这么长时间

本文关键字:长时间 更新 为什么 | 更新日期: 2023-09-27 17:54:53

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

为什么更新这么长时间

当用EF保存时,有3种不同的动作发生,它们的速度非常不同。插入和删除在对SQL server的单个调用中完成,但更新一次完成一条记录,因此它可以检查并发问题并向您报告哪些实体失败以及原因。

如果您想坚持使用EF,您应该总是插入,然后在服务器上执行MERGE (SQL命令)。如果你不具备创建存储过程的能力,你也可以在c#中使用sql命令进行MERGE操作。

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