【问题标题】:Throttling SQL server Replication?限制 SQL 服务器复制?
【发布时间】:2011-01-27 22:03:57
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: sql-server-2008 database-replication transactional-replication


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-15
        • 1970-01-01
        • 1970-01-01
        • 2016-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多