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