• SQL Server提高事务复制效率优化(三)订阅初始化优化


    初始化订阅主要是由分发代理分发和应用快照代理之前生成的快照,所以优化的主体是分发代理。
    1、初始化订阅
    • 首先在本地创建一个订阅,发布服务器、分发服务器和订阅服务器都在同一台服务器上,仅为了测试生产环境不要这样做

    • 分发服务器参数配置

    • 初始化订阅运行时间

    需要注意几点:
    • 快照代理实际执行的是BCP程序,生成快照文件:

    • 快照代理会在快照生成的初始阶段使用锁,虽然时间很短,但是影响范围较大。
    • 在快照生成过程中,不能对表的结构进行更改。
    2.优化参数测试
    • 新建一个分发代理配置文件,命名为“分发代理优化参数 ”
    • 查找这个代理配置文件的profile_id
    SELECT * FROM msdb.dbo .MSagent_profiles WHERE agent_type =3      
    或者 
    EXEC sp_help_agent_profile @agent_type= 3
    • 修改配置文件
    EXEC sp_change_agent_parameter @profile_id = 18,
        @parameter_name = 'MaxBcpThreads', @parameter_value = 4     
       
    EXEC sp_change_agent_parameter @profile_id = 18,
        @parameter_name = 'BcpBatchSize', @parameter_value = 100000
                                 
    EXEC sp_change_agent_parameter @profile_id = 18,
        @parameter_name = 'PollingInterval', @parameter_value = 500000
    • 优化后订阅库生成测试结果,从测试结果上看并没有明显的优化。MaxBcpThreads并没有实现多线程的数据导入,后台查询也只有一个会话在执行bulk in操作,BcpBatchSize对参数影响较小,建议设置的大一些;另外两个参数不影响订阅数据库的生成效率。其实订阅库生成是整个过程的性能瓶颈所在,如果能使用多线程还是不错的解决方法,希望看到博客的同学有好方法提供一下。

     

  • 相关阅读:
    &【12】Python 函数
    &【11】Python 流程控制
    &【09】Python 数据类型之dictionary
    &【07】Python 数据类型之元组
    &【08】Python 数据类型之set
    &【06】Python 数据类型之list
    &【05】Python 彻底搞懂分片操作
    &【04】Python 数据结构之序列
    SpringBoot-HelloWorld(三)
    SpringBoot-了解微服务(二)
  • 原文地址:https://www.cnblogs.com/datazhang/p/5961456.html
Copyright © 2020-2023  润新知