SQL Server提升事務複製效率優化(三)訂閱初始化優化

初始化訂閱主要是由分發代理分發和應用快照代理以前生成的快照,因此優化的主體是分發代理。
一、初始化訂閱
  • 首先在本地建立一個訂閱,發佈服務器、分發服務器和訂閱服務器都在同一臺服務器上,僅爲了測試生產環境不要這樣作

  • 分發服務器參數配置

  • 初始化訂閱運行時間

須要注意幾點:
  • 快照代理實際執行的是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對參數影響較小,建議設置的大一些;另外兩個參數不影響訂閱數據庫的生成效率。其實訂閱庫生成是整個過程的性能瓶頸所在,若是能使用多線程仍是不錯的解決方法,但願看到博客的同窗有好方法提供一下。

 

相關文章
相關標籤/搜索