C#将大量数据从CSV导入数据库

gua*_*azz 11 c# csv multithreading etl relational-database

从CSV(300万+行)向数据库加载大量数据的最有效方法是什么.

  • 需要格式化数据(例如,名称列需要分为名字和姓氏等)
  • 我需要尽可能有效地做到这一点,即时间限制

我正在选择使用C#应用程序逐行读取,转换和加载数据?这是理想的,如果没有,我有什么选择?我应该使用多线程吗?

Rob*_*vey 5

您将受到 I/O 限制,因此多线程不一定会使其运行得更快。

上次我这样做时,大约有十几行 C#。在一个线程中,它以尽可能快的速度运行硬盘,以从盘片中读取数据。我一次从源文件中读取一行。

如果您不热衷于自己编写,则可以尝试使用FileHelpers库。您可能还想看看Sébastien Lorion 的作品。他的 CSV 阅读器是专门为处理性能问题而编写的。