将大型文本文件导入sql数据库

本文关键字:sql 数据库 导入 文件 大型 文本 | 更新日期: 2023-09-27 17:58:19

我读取txt文件并将该文件中的行保存到本地数据库。问题是程序读取70万行,并且读取整个文件需要很长时间。我使用linq来sql,首先读取行,然后将其拆分到Table对象中,然后提交到DB中。

例如,该行具有格式

2014-03-01 00:08:02.380 00000000000001100111

该行分为DateTime和20列(每列代表1个通道(CH1-CH20))

有更好(更快)的方法吗?

将大型文本文件导入sql数据库

您可以使用FileHelpershttp://filehelpers.sourceforge.net/以直接馈送到SqlBulkCopy中。http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx这是迄今为止最简单、最快的方法。

您仍然可以使用Linq-2-sql进行读取/非批处理写入,但对于bulksert来说,速度太慢了。

如果linq到sql提交那么多项目,速度会很慢。大容量插入或大容量更新更适合此任务,而linq到sql无法执行此任务。另请参阅本文。使用linq到sql的批量插入

对于这个任务,我建议使用linq到sql之外的其他方法。