从数据库表写入文本文件的最快方法是什么?

Dan*_* R. 4 c# performance

我有数据分析应用程序,我需要能够使用c#将数据库表导出到分隔的文本文件.由于应用程序体系结构,必须将该数据引入c#应用程序.不能使用数据库导出功能.表的大小可以从几列到几百行到~100列到超过一百万行.

根据意见进一步澄清 -

我有一个Windows服务作为数据访问层,将从表示层获取导出请求.导出完成后,服务将需要将导出作为流对象传递回表示层(可以是WPF应用程序或Silverlight应用程序).然后,将为用户提供保存或打开导出的选项.

最快的方法是什么?

谢谢

Min*_*old 6

嗯,首先,如果它不是必须使用c#,sql管理控制台能够完成这样的任务.

为了实现最佳的性能,我会为消费者 - 生产者2线程概念,

  • 一个线程将是读者,负责从数据库中读取项目 - 在这种情况下,我强烈建议使用IReader读取值,并将它们放在一个cuncurrent队列中.
  • 另一个是将只使用fileStream从队列中写入数据的编写者.

你也可以通过分页方式阅读信息来获得更高的性能,也就是说,如果你知道你将拥有100000条记录,将其分成1000块,让读者从数据库中读取这些块并将它们放入队列.

虽然后面的解决方案更复杂,但它允许您以最佳方式利用CPU并避免延迟.