首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 合併式複寫效能調優七大實戰技巧

     編輯:關於SqlServer

核心原則

盡可能頻繁執行合併代理程式。離線使用者應盡量頻繁同步。以下七大技巧可顯著提升效能。

1. 選用合適的代理程式設定檔

右鍵合併代理 → 代理程式設定檔,依場景選擇:

  • 預設:一般環境。
  • 高容量伺服器對伺服器:大量資料、高頻同步的伺服器間複寫。
  • 資料列計數與總和檢查碼驗證:需嚴格一致性驗證。
  • 資料列計數驗證:輕量驗證。
  • 緩慢連結代理程式:低頻寬/高延遲網路(撥接、行動裝置)。
  • 詳細歷程記錄:除錯追蹤。
  • Windows 同步管理員:搭配 SyncMgr 使用。

2. 簡化篩選條件並加索引

  • 篩選限制同步資料量,篩選欄位必須建立索引並定期更新統計資訊。
  • 若使用 HOST_NAME() 參數化篩選,可在代理程式屬性設定 HostName 覆寫。
  • 必要時重新設計表結構簡化篩選邏輯。

3. 增加批次處理大小

在代理程式屬性調大下列參數,減少往返次數,並能掩蓋 DRI (宣告式參考完整性) 錯誤重試開銷:

  • UploadGenerationsPerBatch
  • DownloadGenerationsPerBatch
  • UploadReadChangesPerBatch
  • DownloadReadChangesPerBatch
  • UploadWriteChangesPerBatch
  • DownloadWriteChangesPerBatch

4. 定期重建合併系統表索引

針對下列系統表定期 DBCC DBREINDEX 或 ALTER INDEX ... REBUILD:

  • MSmerge_contents
  • MSmerge_tombstone (刪除追蹤)
  • MSmerge_genhistory (代數歷程)
  • MSmerge_replinfo

5. 限制衝突保留期限

右鍵合併發行集 → 屬性 → 訂閱,設定 重新同步前允許的最長離線天數。超過期限的訂閱需重新初始化(套用快照),避免中繼資料膨脹拖慢同步。

6. 使用替代同步夥伴

僅限 SQL Server 2005+。發行者離線時,訂閱者可連線備用發行者同步。限制:不支援自動識別範圍調整、發行者不可用時無法自動故障轉移。需聯繫微軟支援協助部署。

7. 重新發行架構實現高可用性

因替代同步夥伴限制多,實務採 重新發行:訂閱者同時為下層訂閱者的發行者。拓撲範例:

  • 總部:主發行者
  • 四大區域:訂閱者兼區域發行者
  • 各省分公司:訂閱區域發行者

關鍵:仔細設定 全域優先順序 解決衝突,確保資料最終一致性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved