将大量数据从CSV(300万行)加载到数据库是最有效的方法.
>数据需要格式化(例如,名称列需要分成名字和姓氏等)
>我需要尽可能有效地做到这一点,即时间限制
我可以选择使用C#应用程序逐行阅读,转换和加载数据?这是理想的,如果没有,我的选择是什么?我应该使用多线程吗?
解决方法
您将被I / O绑定,因此多线程不一定会使其运行更快.
上次我这样做,大概是十几行C#.在一个线程中,它运行的硬盘尽可能快地从盘中读取数据.我从源文件一次读取一行.
如果您不热衷于自己编写,您可以尝试使用FileHelpers库.您可能还想看看Sébastien Lorion’s work.他的CSV读取器专门用于处理性能问题.