繁体   English   中英

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

[英]What would be the fastest way to insert 2.5 million rows of data parsed from a text file, into Sql server

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

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

{Auto_Increment_id: Serialized Byte Array} 

我当前的策略是解析大约10000行,将它们插入数据库,然后重复。 这大约需要3个小时才能完成,因此我相信有一种更有效的方法。

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

最终,我希望将此过程至少缩短到10-20分钟。 这可能吗?

SqlBulkCopy。 阅读有关它。 在文档中。

更快-因为它实际上并不是很聪明-将其放入临时表中,然后在该表的末尾插入最终表中。 SqlBulkCopy锁定整个表,这会绕过整个表,并允许在上载期间使用该表。

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

我在低端数据库服务器(每秒48GB内存,大约十几个SAS磁盘-是,低端)上每秒管理100.000行以上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM