zoukankan      html  css  js  c++  java
  • SQL Server提高事务复制效率优化(二)快照初始化优化

    测试数据表量1500w+,使用初始化默认的快照代理参数,复制的三个过程包括快照初始化,订阅初始化和数据修改复制,主要对快照代理、分发代理、日志读取代理分别作了参数优化,并给出优化前后的对照实验测试。

    1.初始化快照
    • 在复制监视器中找到快照代理位置,右键,选择代理配置文件:
     
    • 查看默认配置:     
     
    • 初始化快照时间:    
     

    2.优化参数测试

    • 新建一个快照代理配置文件,命名为“快照代理优化参数 ”
    • 查找这个代理配置文件的profile_id
    use msdb
    SELECT * FROM msdb.dbo .MSagent_profiles WHERE agent_type =1
    或者
    EXEC sp_help_agent_profile @agent_type= 1

    这里的agent_type注解如下

    代理的类型:
    1 = 快照代理
    2 = 日志读取器代理
    3 = 分发代理
    4 = 合并代理
    9 = 队列读取器代理 
    • 修改配置文件,这里新增了MaxBcpThreads,MaxNetworkOptimization参数,修改了BcpBatchSize,HistoryVerboseLevel参数,对于性能提高最大的参数就是MaxBcpThreads,其他参数调整对性能调高不大,但MaxNetworkOptimization参数一定要调整到1,可以减少传输到订阅服务器上不必要的操作。
    USE msdb
    EXEC sp_add_agent_parameter @profile_id = 17,
        @parameter_name = 'MaxBcpThreads', @parameter_value = 4
           
    EXEC sp_add_agent_parameter @profile_id = 17,
        @parameter_name = 'MaxNetworkOptimization', @parameter_value = 1               
     
    EXEC sp_change_agent_parameter @profile_id = 17,
        @parameter_name = 'BcpBatchSize', @parameter_value = 200000
     
    EXEC sp_change_agent_parameter @profile_id = 17,
        @parameter_name = 'HistoryVerboseLevel', @parameter_value = 1
    • 调整后的参数:
     
    • 优化后测试结果,时间大大减少。但是如果在有业务负载同时生成快照,那么资源消耗很大,建议合理调整参数,不要设置太大并发,用默认配置已经有很高的I/O了。
     
  • 相关阅读:
    python中使用schedule模块定时执行任务
    python marshmallow库
    shell 脚本根据名称查找进程id会多出来两个id号
    docker随笔(1)
    python实现-kafka作为消息中间件 -实现数据生产和消费-实用的脚本
    python-kafka文档
    mysql文档
    VMware pro15安装centos7
    excel表计算和计算器计算结果不一致
    jmeter安装部署、maven路径配置
  • 原文地址:https://www.cnblogs.com/datazhang/p/5961386.html
Copyright © 2011-2022 走看看