如何提高CSV阅读性能

时间:2011-11-22 10:28:14

标签: c#

我正在读取CSV文件并将CSV文件中的数据保存到我的数据库中。

我正在使用Streamreader的{​​{1}}来读取每一行,然后将其插入到我的数据库中,这很正常。但在对我的代码进行分析后,我注意到ReadLine()占用了太多时间。

如何改善任务的效果

请为我提供其他选择。

表现是这里的主要关注点。

3 个答案:

答案 0 :(得分:2)

您可以对此MSDN link使用SqlBulkCopy课程。它比单独的逐行插入快一个数量级。 MSDN页面有一个完整的例子。

您还可以使用StreamReader.Peek方法加快阅读速度 - MSDN link。再次,MSDN链接就是一个很好的例子。

答案 1 :(得分:0)

你确定StreamReader.ReadLine在这里很慢吗? 我想在数据库中插入数据比从本地文件读取一行文本要慢

如果文件不太大,您可以尝试使用System.IO.File.ReadAllLines()一步将文件读入内存。

答案 2 :(得分:0)

我建议使用众多CSV解析库中的一个 - 您应该测试它们以了解它们的执行情况。

FileHelpers是一个受欢迎的库,代码项目也有several different个。

然而,问题可能是逐行插入数据库。

您应该尽可能多地阅读文件和bulk insert到数据库,而不是逐行。