将表格导出到文本文件的最快方法是什么

sof*_*eda 18 sql-server export sql-server-2012

我将拥有一个 SQL Server 2012 数据库和一个包含 300 万行和 50 列的表。无人值守后台 .net 进程(可能发出一些 SQL 或 Powershell 命令)将其导出到文本文件的最快方法是什么,每行数据一行?.net 进程应该知道导出何时完成或是否有任何错误。数据类型将为 allintnvarchar

我假设纯 C# 代码使用 ado.net 执行select *命令并循环遍历数据读取器并为每个记录写入文件会很慢,我无法并行化它。

理想情况下,将导出到远程共享网络文件夹,而不是 SQL Server 计算机上的本地文件夹。SQL Server 将是一个 HA 群集。SSIS 是否更适合于此,不需要数据转换?

.Net 进程将在机器 A 上运行,在机器 B 上运行 SQL Server,最终文件目的地是网络共享。一种选择是 SQL 服务器将文件直接写入网络共享。另一个选项是 SQL Server 写入机器 A,然后在写入文件时,.net 进程将其复制到网络共享。我没有正式的 SLA,但预计文件写入需要 30 分钟 - 1 小时。

Mar*_*ian 10

如果您想老去观看它的执行,则可以选择循环浏览所有这些文章。

您应该尝试的一些不同选项是:

您可以在另一个会话中循环时尝试所有这些选项,只是为了好玩:-)。


bum*_*mmi 0

我认为命令行中的 bcp.exe 应该是最快的方法。

http://msdn.microsoft.com/en-us/library/ms162802.aspx

  • 虽然您可能是对的,但您能否透露一些有关此解决方案的细节?它是如何使用的(指向文档的链接可能就足够了),为什么你认为它更快等等。 (5认同)