SQL使用.net进行文本归档和并行处理

时间:2016-08-19 20:09:07

标签: sql-server multithreading parallel-processing ado.net petapoco

我有一个有数百万行的表。它有记录数据。我想将数据移动到文本文件。每天的数据应该进入自己的文本文件。我在.net环境中。实现它的有效方法是什么?

我想使用并行处理,因为我们拥有多核心的强大服务器。我能想到的一些选择是:

  1. 拥有并行数据读取器。每个读者查询一部分数据。如何使用此方法管理总连接?此外,如果我走这条路线,我将不得破坏用户的正常使用。我可以通过这种方法看到的另一个问题是管理我自己的线程并设置上限,而Parallel.ForEach会更简单。

  2. 生产者 - 消费者模式:一个线程读取数据并将其排入内存。多个写入器使用内存中的数据并将其写入文本文件。

  3. 我对PetaPoco / NPoco持开放态度。理想情况下,我想使用Parallel.ForEach而不会过多地使线程代码复杂化。

1 个答案:

答案 0 :(得分:0)

当涉及大量计算时,并行处理会有所帮助。但是,在这里,您主要涉及I / O.硬盘一次只能写入一个文件。所以多线程不会带来希望的速度增长。相反,它可能会降低速度,因为在写入不同的文件时,硬盘可能会被强制移回第四位。

相关问题