将大型文本文件导入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))
有更好(更快)的方法吗?
您可以使用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之外的其他方法。