共用方式為


系統存在效能問題

複寫效能可按照下列五種維度量度:

  • 延遲:資料變更要在複寫拓撲的節點之間傳播所需要花費的時間。

  • 輸送量:系統在一段長時間可承受的複寫活動量 (以某段時間傳遞的命令數量來測量)。

  • 並行:在系統上可同步操作的複寫處理數量。

  • 同步處理的持續時間:完成給定同步處理所需要的時間長度。

  • 資源消耗:用來作為複寫處理結果的硬體和網路資源。

延遲和輸送量與交易式複寫關係密切,因為在交易式複寫上建立的系統通常需要低度延遲和高輸送量。並行和同步處理的持續時間與合併式複寫關係密切,因為在合併式複寫上建立的系統通常有大量的訂閱者,同時發行者可與這些訂閱者擁有許多並行的同步處理。

設定複寫後,建議您開發效能基準線,它可讓您決定對應用程式和拓撲之特定工作負載的複寫操作方式。使用「複寫監視器」和「系統監視器」來決定下列複寫效能五種維度的特定數目:建立基準線數目後,您可以在「複寫監視器」中設定臨界值和警示。如需詳細資訊,請參閱<使用複寫監視器監視效能>、<在複寫監視器中設定臨界值和警告>和<為複寫代理程式事件使用警示>。如需可用於疑難排解複寫之工具的詳細資訊,請參閱<疑難排解工具 (複寫)>。

說明與使用者動作

複寫效能受到下列因素的影響:

  • 伺服器和網路硬體

  • 資料庫設計

  • 散發者組態

  • 發行集設計與選項

  • 篩選設計與使用

  • 訂閱選項

  • 快照集選項

  • 代理程式參數

  • 維護

如遇到效能問題,建議您閱讀下面幾節中的建議,並在您能影響遇到問題的地方套用變更。例如:

  • 如果您正使用合併式複寫,同時您注意到在「複寫監視器」中,單一篩選的發行項佔用了很大一部分的同步處理時間:請檢查是否使用適當的篩選選項,以及是否索引了篩選的資料行。

  • 如果您正使用交易式複寫,並在已發行資料表上執行批次作業時遇到高度延遲:請考慮複製預存程序的執行,以在「訂閱者」端執行批次作業。

所有類型的複寫

應對所有類型的複寫進行以下考量。如需詳細資訊,請參閱<提升一般複寫效能>。

  • 伺服器和網路

    • 設定配置給 MicrosoftSQL Server Database Engine 的最小和最大記憶體數量。

    • 確保適當配置資料庫資料檔案和記錄檔。針對複寫相關的所有資料庫交易記錄,使用個別的磁碟機。

    • 考慮為複寫用伺服器加入記憶體,特別是散發者。

    • 使用多處理器電腦。

    • 使用高速網路。若網路太慢,請指定適當的網路設定與代理程式參數。如需詳細資訊,請參閱<低速網路將引起問題>。

  • 資料庫設計

    • 依照資料庫設計的最佳作法。

    • 考慮設定 READ_COMMITTED_SNAPSHOT 資料庫選項。

    • 小心使用觸發程序的應用程式邏輯。

    • 限制使用 Large Object (LOB) 資料類型。

  • 發行集設計與選項

    • 只發行需要的資料。

    • 透過發行集設計和發行集行為,將衝突最小化。

    • 明智使用資料列篩選。

    • 減少複寫代理程式的詳細資訊層級,僅初始化測試、監視或偵錯時除外。

  • 訂閱選項

    • 有大量訂閱者時,使用提取訂閱。

    • 若訂閱者嚴重落後,將考慮訂閱重新初始化。

  • 快照集選項

    • 視需要且必須在離峰時間才執行快照集代理程式。

    • 為發行集使用單一快照集資料夾。

    • 將快照集資料夾置於散發者本機磁碟機,且該散發者並非用來儲存資料庫或記錄檔。

    • 在訂閱者端建立訂閱資料庫時,考慮指定簡單或大量記錄復原模式。

    • 對於低頻寬網路,請考慮在抽取式媒體上使用替代快照集資料夾和壓縮快照集。

    • 使用「快照集代理程式」、「合併代理程式」和「散發代理程式」的 –MaxBCPThreads 參數。使用「散發代理程式」和「合併代理程式」的 –UseInprocLoader 參數。

交易式複寫

應對交易式複寫進行以下考量。如需詳細資訊,請參閱<增強交易式複寫效能>。

  • 資料庫設計

    • 將應用程式設計中的交易量最小化。
  • 散發者組態

    • 在專用伺服器上設定散發者。

    • 為散發資料庫設定適當的大小。

  • 發行集設計與選項

    • 批次更新到已發行資料表時,複寫預存程序執行。

    • 跨多發行集傳播發行項。

  • 訂閱選項

    • 如果您在同一「發行者」端具有多個發行集,請使用獨立代理程式而非共用代理程式 (這是預設行為)。

    • 連續執行代理程式來代替非常頻繁的排程執行。

  • 代理程式參數

    • -MaxCmdsInTran 參數用於「記錄讀取器代理程式」。

    • 使用「散發代理程式」的 –SubcriptionStreams 參數。

    • 為記錄讀取器代理程式增加 -ReadBatchSize 參數的值。

    • 為散發代理程式增加 -CommitBatchSize 參數的值。

    • 為記錄讀取器代理程式減少 -PollingInterval 參數的值。

合併式複寫

應對合併式複寫進行以下考量。如需詳細資訊,請參閱<增強合併式複寫效能>。

  • 資料庫設計

    • 資料列篩選與聯結篩選中使用的索引資料行。

    • 考慮包含了「大型物件」(LOB) 資料類型的過度正規化資料表。

  • 發行集設計

    • 使用 90RTM 的發行集相容性層級 (SQL Server 2005) 或更新版本。

    • 使用適當的發行集保留設定。

    • 使用只在發行者端變更之資料表的僅限下載發行項。

  • 篩選設計與使用

    • 限制資料列篩選子句的複雜性。

    • 使用有參數化篩選的預先計算的資料分割 (預設為使用這項功能)。

    • 如果資料已篩選,但是未在使用者之間共用,則使用非重疊資料分割。

    • 不要建立複雜的聯結篩選階層。

    • 如果邏輯允許,則將 join_unique_key 選項設定為 1

  • 預先計算的資料分割考量

    • 當批次包含大量資料變更時,請小心設計應用程式。務必先變更聯結篩選中父資料表的資料,然後再進行子資料表中對應的變更。

    • 當批次包含大量資料變更時,請減少批次中的變更次數,並在批次之間執行合併代理程式。如果無法這麼做,請增加複寫的 generation_leveling_threshold 值。

  • 訂閱考量因素

    • 交錯訂閱同步處理排程。
  • 代理程式參數

    • 如果訂閱透過快速連接進行同步處理,且變更從「發行者」和「訂閱者」端送出,請使用「合併代理程式」的 –ParallelUploadDownload 參數。
  • 快照集選項

    • 在產生初始快照集之前,於大型資料表上建立 ROWGUIDCOL 資料行。

    • 預先產生快照集及/或允許訂閱者在第一次同步處理時,要求快照集的產生與套用。

  • 維護

    • 偶爾重新索引合併式複寫系統資料表。

    • 使用複寫監視器內的 [同步處理記錄] 索引標籤監視同步處理效能。

請參閱

概念