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

时间:2014-04-13 21:05:50

标签: c# linq-to-sql insertonsubmit

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

例如,行具有格式

2014-03-01 00:08:02.380 00000000000001100111

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

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

2 个答案:

答案 0 :(得分:0)

对于提交那么多项目的linq来说,这会很慢。 批量插入或批量更新对于此任务更为可取,您可以使用linq to sql。另见这篇文章。 bulk insert with linq-to-sql

我建议使用linq to sql来完成这项任务。

答案 1 :(得分:0)

您可以使用FileHelpers http://filehelpers.sourceforge.net/直接提供给SqlBulkCopy。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx 这是迄今为止最简单,最快速的方法。

你仍然可以使用Linq-2-sql进行读取/非批量写入,但对于bulkinsert来说太慢了。