系統存在效能問題
更新: 2006 年 12 月 12 日
複寫效能可按照下列五種維度量度:
- 延遲:資料變更要在複寫拓撲的節點之間傳播所需要花費的時間。
- 輸送量:系統在一段長時間可承受的複寫活動量 (以某段時間傳遞的命令數量來測量)。
- 同時發生:在系統上可同步操作的複寫處理數量。
- 同步處理的持續時間:完成給定同步處理所需要的時間長度。
- 資源消耗:用來作為複寫處理結果的硬體和網路資源。
延遲和輸送量與交易式複寫關係密切,因為在交易式複寫上建立的系統通常需要低度延遲和高輸送量。同時發生和同步處理的持續時間與合併式複寫關係密切,因為在合併式複寫上建立的系統通常有大量的訂閱者,同時發行者可與這些訂閱者擁有許多並行的同步處理。
設定複寫後,建議您開發效能基準線,它可讓您決定對應用程式和拓撲之特定工作負載的複寫操作方式。使用「複寫監視器」和「系統監視器」來決定下列複寫效能五種維度的特定數目:建立基準線數目後,您可以在「複寫監視器」中設定臨界值和警示。如需詳細資訊,請參閱<使用複寫監視器監視效能>、<在複寫監視器中設定臨界值和警告>與<為複寫代理程式事件使用警示>。如需可用於疑難排解複寫之工具的詳細資訊,請參閱<複寫疑難排解工具>。
說明與使用者動作
複寫效能受到下列因素的影響:
- 伺服器和網路硬體
- 資料庫設計
- 散發者組態
- 發行集設計與選項
- 篩選設計與使用
- 訂閱選項
- 快照集選項
- 代理程式參數
- 維護
如遇到效能問題,建議您閱讀下面幾節中的建議,並在您能影響遇到問題的地方套用變更。例如:
- 如果您正使用合併式複寫,同時您注意到在「複寫監視器」中,單一篩選的發行項佔用了很大一部分的同步處理時間:請檢查是否使用適當的篩選選項,以及是否索引了篩選的資料行。
- 如果您正使用交易式複寫,並在已發行資料表上執行批次作業時遇到高度延遲:請考慮複製預存程序的執行,以在「訂閱者」端執行批次作業。
所有類型的複寫
應對所有類型的複寫進行以下考量。如需詳細資訊,請參閱<提升一般複寫效能>。
- 伺服器和網路
- 設定配置給 Microsoft SQL Server Database Engine 的最小和最大記憶體數量。
- 確保適當配置資料庫資料檔案和記錄檔。針對複寫相關的所有資料庫交易記錄,使用個別的磁碟機。
- 考慮為複寫用伺服器加入記憶體,特別是散發者。
- 使用多處理器電腦。
- 使用高速網路。若網路太慢,請指定適當的網路設定與代理程式參數。如需詳細資訊,請參閱<低速網路將引起問題>。
- 資料庫設計
- 依照資料庫設計的最佳作法。
- 考慮設定 READ_COMMITTED_SNAPSHOT 資料庫選項。
- 小心使用觸發程序的應用程式邏輯。
- 限制使用 Large Object (LOB) 資料類型。
- 發行集設計與選項
- 只發行需要的資料。
- 透過發行集設計和發行集行為,將衝突最小化。
- 明智使用資料列篩選。
- 減少複寫代理程式的詳細資訊層級,僅初始化測試、監視或偵錯時除外。
- 訂閱選項
- 有大量訂閱者時,使用提取訂閱。
- 若訂閱者嚴重落後,將考慮訂閱重新初始化。
- 快照集選項
- 視需要且必須在離峰時間才執行快照集代理程式。
- 為發行集使用單一快照集資料夾。
- 將快照集資料夾置於散發者本機磁碟機,且該散發者並非用來儲存資料庫或記錄檔。
- 在訂閱者端建立訂閱資料庫時,考慮指定簡單或大量記錄復原模式。
- 對於低頻寬網路,請考慮在抽取式媒體上使用替代快照集資料夾和壓縮快照集。
- 使用「快照集代理程式」、「合併代理程式」和「散發代理程式」的 –MaxBCPThreads 參數。使用「散發代理程式」和「合併代理程式」的 –UseInprocLoader 參數。
交易式複寫
應對交易式複寫進行以下考量。如需詳細資訊,請參閱<增強交易式複寫效能>。
- 資料庫設計
- 將應用程式設計中的交易量最小化。
- 散發者組態
- 在專用伺服器上設定散發者。
- 為散發資料庫設定適當的大小。
- 發行集設計與選項
- 批次更新到已發行資料表時,複寫預存程序執行。
- 跨多發行集傳播發行項。
- 訂閱選項
- 如果您在同一「發行者」端具有多個發行集,請使用獨立代理程式而非共用代理程式 (這是 SQL Server 2005 的預設值)。
- 連續執行代理程式來代替非常頻繁的排程執行。
- 代理程式參數
- 將 -MaxCmdsInTran 參數用於「記錄讀取器代理程式」。
- 使用「散發代理程式」的 –SubcriptionStreams 參數。
- 為記錄讀取器代理程式增加 -ReadBatchSize 參數的值。
- 為散發代理程式增加 -CommitBatchSize 參數的值。
- 為記錄讀取器代理程式減少 -PollingInterval 參數的值。
合併式複寫
應對合併式複寫進行以下考量。如需詳細資訊,請參閱<增強合併式複寫效能>。
- 資料庫設計
- 資料列篩選與聯結篩選中使用的索引資料行。
- 考慮包含了「大型物件」(LOB) 資料類型的過度正規化資料表。
- 發行集設計
- 使用發行集相容性層級 90RTM (SQL Server 2005)。
- 使用適當的發行集保留設定。
- 使用只在發行者端變更之資料表的僅限下載發行項。
- 篩選設計與使用
- 限制資料列篩選子句的複雜性。
- 使用有參數化篩選的預先計算的資料分割 (預設為使用這項功能)。
- 如果資料已篩選,但是未在使用者之間共用,則使用非重疊資料分割。
- 不要建立複雜的聯結篩選階層。
- 如果邏輯允許,則將 join_unique_key 選項設定為 1。
- 預先計算的資料分割考量
- 當批次包含大量資料變更時,請小心設計應用程式。務必先變更聯結篩選中父資料表的資料,然後再進行子資料表中對應的變更。
- 當批次包含大量資料變更時,請減少批次中的變更次數,並在批次之間執行合併代理程式。如果無法這麼做,請增加複寫的 generation_leveling_threshold 值。
- 訂閱考量因素
- 交錯訂閱同步處理排程。
- 代理程式參數
- 如果訂閱透過快速連接進行同步處理,且變更從「發行者」和「訂閱者」端送出,請使用「合併代理程式」的 –ParallelUploadDownload 參數。
- 快照集選項
- 在產生初始快照集之前,於大型資料表上建立 ROWGUIDCOL 資料行。
- 預先產生快照集及/或允許訂閱者在第一次同步處理時,要求快照集的產生與套用。
- 維護
- 偶爾重新索引合併式複寫系統資料表。
- 使用複寫監視器內的 [同步處理歷程記錄] 索引標籤監視同步處理效能。
請參閱
概念
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|