[英]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.