将250万行从文本文件解析的数据插入Sql server的最快方法是什么?



如问题所述,我有一个文本文件(700 mb),我正在使用c#读取,我正在解析250万行,将每行转换为一个类,序列化该类,然后插入sql-server-2012数据库。

我要插入的表有两列,看起来像:

{Auto_Increment_id: Serialized Byte Array} 

我目前的策略是解析大约10000行,将它们插入数据库,然后重复。这要花大约3个小时,所以我相信有更有效的方法。

我的一个想法是将插入写入一个文本文件,然后批量复制到数据库中。还有其他想法吗?

最终我想把这个过程减少到至少10 - 20分钟。这可能吗?

SqlBulkCopy。读一读。

更快——因为它写得并不聪明——是把它放入一个临时表中,然后在最后插入到最终表中。SqlBulkCopy会锁定整个表,这样可以绕过它,并允许在上传过程中使用表。

然后使用多个线程每次插入远超过10000行的块。

我在低端数据库服务器(即48gb内存,大约12个SAS磁盘-是的,这是低端)上每秒管理超过100,000行。

相关内容

最新更新