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了。
 
相關文章
相關標籤/搜索