0

我们在 sql server 2008 上的当前事务复制设置存在性能问题。当创建新快照并将快照应用于订阅者时,我们看到发布者和分发者的网络利用率跃升至 99%,我们看到磁盘队列达到 30 这会导致应用程序超时。

有什么办法可以限制正在发送的复制数据?我们可以限制被复制的行数吗?是否有任何开关可以设置为开/关来完成此操作?

谢谢!

4

2 回答 2

0

你有另一种方法来处理这种情况

  • 在具有数百万条记录的表上设置事务复制时
  • 初始快照需要一些时间才能将记录传递给订阅者
  • 在 SQL 2005 中,我们可以选择在事务服务器和发布服务器上创建表,填充数据集并在其上设置复制
  • 当您使用命令 EXEC 添加订阅时 sp_addsubscription set @sync_type = 'replication support only'。
  • 参考文章http://www.mssqltips.com/tip.asp?tip=1117
于 2011-06-17T09:01:59.257 回答
0

我们的 DBA 迫使我们将 dml 代码分解为一次分批运行 50000 行,中间间隔几分钟。他不时使用该批量大小,但这样我们的复制数据库就可以了。对于批处理,所有内容都必须进入临时表,一个执行 row_number() 的新列(命名为 Ordinal),然后是一个类似于 Ordinal / 50000 的 BatchID。最后是一个循环来计算 BatchID 并逐批更新目标表. 对开发人员来说很难,对 DBA 来说更容易,而且不需要为基础设施支付更多费用。

于 2018-09-11T04:59:54.727 回答