我将拥有一个SQL Server 2012数据库和一个包含300万行和50列的表。无人值守的后台.net进程(可能发出一些SQL或Powershell命令)将其导出到文本文件(每一行数据一行)的最快方法是什么?.net进程应知道何时完成导出或是否有任何错误。数据类型将为all int
或nvarchar
。
我假设使用ado.net来执行select *
命令并遍历数据读取器并为每条记录写入文件的纯C#代码将很慢,而且我无法并行处理。
理想情况下,导出将导出到远程共享网络文件夹,而不是SQL Server计算机上的本地文件夹。SQL Server将是一个HA群集。SSIS是否更适合于此,不需要数据转换?
.Net进程将在计算机A上运行,在计算机B上运行SQL Server,最终文件目标是网络共享。一种选择是SQL Server将文件直接写入网络共享。另一个选项是SQL Server写入计算机A,然后在写入文件时,.net进程将其复制到网络共享。我没有正式的SLA,但是希望30分钟-1小时的文件写入时间。
"Ideally the export will be to a remote shared network folder and not a local folder on the SQL Server machine."
-.NET应用程序将从何处运行?最坏的情况是,这可能意味着数据必须经过2个网络跃点,这可能是最大的瓶颈。此外,行数也无关紧要-大约总数据大小是多少?您是否需要为此过程满足的性能SLA?