【发布时间】:2014-04-16 16:51:31
【问题描述】:
我有一个大约 80,000 行的 CSV 文件,我正在尝试在 C# 应用程序中处理它并对我的 SQL 数据库进行必要的更改。我将 CSV 读入应用程序,这并不需要很长时间,然后我从那里处理它。
对于 CSV 中的每条记录,我要么插入一条新记录,要么根据条件(来自 SQL 选择语句)更新数据库中的现有记录。我只是使用 C# 内联 SQL 命令来执行我的选择、更新和插入。此过程大约需要 40 分钟才能完成。
我想知道是否有任何大型 SQL 数据库更新和插入的最佳实践能够加快该过程。
提前致谢!
【问题讨论】:
-
有SQL Bulk Copy Operations (msdn.microsoft.com/en-us/library/7ek5da1a%28v=vs.110%29.aspx),或者如果您使用
EntityFramework6.0 或更高版本,您可以使用DbSet<T>.AddRange()方法批量添加实体。 -
@martin_costello,就是这样。将该评论粘贴到答案中
-
我不知道 AddRange 做了批量复制
-
谢谢,我要试试批量复制操作。我不熟悉批量复制,是否应该将需要添加的所有内容都放入 DataTable 并在完成后运行批量复制?
标签: c# sql sql-server sql-update sql-insert