使用Windows服务改进将1000万条记录写入文本文件的性能

时间:2012-08-14 14:00:24

标签: c# .net .net-4.0 io task-parallel-library

我从数据库中获取超过1000万条记录并写入文本文件。完成此操作需要数小时的时间。有没有选择在这里使用TPL功能?

如果有人能让我开始用TPL实现这一点,那将是很棒的。

using (FileStream fStream = new FileStream("d:\\file.txt", FileMode.OpenOrCreate,     FileAccess.ReadWrite))
{
    BufferedStream bStream = new BufferedStream(fStream);
    TextWriter writer = new StreamWriter(bStream);
    for (int i = 0; i < 100000000; i++)
    {
        writer.WriteLine(i);
    }
    bStream.Flush();
    writer.Flush(); // empty buffer;
    fStream.Flush();
}

1 个答案:

答案 0 :(得分:0)

代码示例只是将整数写入文件,并且不进行数据库访问。如果这不是很快就会出现问题。您最可能的瓶颈是从数据库中获取数据。慢速查询或慢速连接。如果您指定数据库类型并显示查询,我们可以放大此...