我有一个连接良好的远程站点,每天两次向该站点发送某些表的快照。根据底层应用程序的架构限制,快照复制是我可以使用的唯一方法。
快照通过 UNC 路径和 FTP 发布,大约 6MB,因此相当小。我不确定实际使用的是 FTP 还是 UNC。从快照压缩到 snapper.cab 文件到复制监视器显示第一个正在应用的脚本,大约需要 5 分钟,因此我假设这个间隔就是传输时间。我认为是 UNC/SMB,因为通过 FTP 在我们的 3MB 连接上复制那么多数据需要的时间要少得多。
加载快照大约需要 25 分钟,对于中等量的数据来说,这似乎需要很长时间。有很多行(几个表有 100K 行),但实际数据量非常小。
订阅者在 2.8GHz ProLiant 上运行 SQLExpress 2005,该机器具有 3GB RAM,除此之外并不繁忙。我尚未进行广泛的分析以查看是否存在磁盘争用或其他可能发生的事情。
我想知道这里可能的速率限制器是什么,以及是否有办法加快速度。30 分钟似乎是复制和加载 6MB 压缩数据的很长的时间。
答案1
由于您在远程端拥有 SQL Express,因此您的选项非常有限,因为您只能进行推送订阅。
复制的工作方式是将数据通过 BCP 传输到二进制文件。当复制代理得知快照已完成时,它会使用 BCP 通过网络将数据加载到订阅者中。通过网络进行 BCP 并不是最快的过程。