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了。
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM