我读取 txt 文件并将该文件中的行保存到本地数据库。问题是程序读取 700 000 行并且读取整个文件需要很长时间。我使用 linq to sql,首先读取该行,然后将其拆分为 Table 对象,然后提交到 DB。
例如该行有格式
2014-03-01 00:08:02.380 00000000000001100111
此行分为 DateTime 和 20 列(每列代表 1 个通道(CH1 - CH20))
有没有更好(更快)的方法?
我读取 txt 文件并将该文件中的行保存到本地数据库。问题是程序读取 700 000 行并且读取整个文件需要很长时间。我使用 linq to sql,首先读取该行,然后将其拆分为 Table 对象,然后提交到 DB。
例如该行有格式
2014-03-01 00:08:02.380 00000000000001100111
此行分为 DateTime 和 20 列(每列代表 1 个通道(CH1 - CH20))
有没有更好(更快)的方法?
您可以使用 FileHelpers http://filehelpers.sourceforge.net/直接输入 SqlBulkCopy。http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx 这是迄今为止最简单和最快的方法。
您仍然可以使用 Linq-2-sql 进行读取/非批量写入,但对于 bulkinsert 来说太慢了。
linq to sql 提交这么多项目会很慢。Bulk insert 或 Bulk update 更适合使用 linq to sql 无法完成的任务。另见这篇文章。使用 linq-to-sql 进行批量插入
对于这个任务,我建议除了 linq to sql 之外的其他东西。