我有一些远程 SQL 服务器,我需要定期从中提取大量数据(例如每台服务器 5,000,000 行)。此数据还需要格式化并通过 FTP 传输到另一台服务器。拨号部分没问题,我可以和服务器连接和通信,但有时连接很慢,可能只有19Kbps。
连接后,我尝试使用 System.Data.SqlClient.SqlBulkCopy,但它只会引发超时错误。我已将大容量复制的超时设置为 7200 秒,将每个数据库的连接字符串的超时设置为 900 秒,但它仍然在 30 秒左右超时。
我尝试使用 DataReader 并运行 SqlCommand.ExecuteNonQuery() 来插入每一行,这可以正常工作,但是速度很慢,有时连接会丢失。
我还尝试在远程服务器上设置 DTS 包,安排它们将我需要的数据转储为文本,然后尝试下载文件。但是,它们可能是几百 MB(在某些服务器上甚至可能是 GB),并且拨号连接通常会在某个时候断开。