MSSQL_REPL027183
適用於:SQL Server Azure SQL 受控執行個體
訊息詳細數據
屬性 | 值 |
---|---|
產品名稱 | SQL Server |
事件識別碼 | 27183 |
事件來源 | MSSQLSERVER |
元件 | SQL Server Database Engine |
符號名稱 | |
訊息文字 | 合併處理無法以參數化資料列篩選器來列舉發行項的變更。 如果這個失敗繼續發生,請增加這個處理的查詢逾時、縮短發行集的保留期限,以及改善發行資料表的索引。 |
說明
如果在處理篩選發行集中的變更時發生 合併代理程式 逾時,就會引發此錯誤。 逾時可能是下列其中一個問題所造成:
不使用預先計算的數據分割優化。
用於篩選之數據行的索引片段。
大型合併元數據表,例如 MSmerge_tombstone、 MSmerge_contents和 MSmerge_genhistory。
未在唯一索引鍵上聯結的篩選數據表,以及牽涉到大量數據表的聯結篩選。
使用者動作
若要解決問題:
增加 合併代理程式 的 -QueryTimeOut 參數值,以便在解決造成錯誤的基礎問題時繼續處理。 可於代理程式設定檔和命令列中指定代理程式參數。 如需詳細資訊,請參閱
盡可能使用預先計算的數據分割優化。 如果符合許多發行集需求,預設會使用此優化。 如需這些需求的詳細資訊,請參閱使用預先計算的資料分割最佳化參數化篩選效能。 如果發行集不符合這些需求,請考慮重新設計發行集。
指定發行集保留期間可能的最低設定,因為複寫在達到保留期間之前,無法清除發行集和訂閱資料庫中的元數據。 如需詳細資訊,請參閱 Subscription Expiration and Deactivation。
做為合併式複寫維護的一部份,請不時檢查與合併式複寫相關聯的系統資料表成長: MSmerge_contents、 MSmerge_genhistory、 MSmerge_tombstone、 MSmerge_current_partition_mappings和 MSmerge_past_partition_mappings。 定期重新整理資料表的索引。 如需詳細資訊,請參閱 重新組織與重建索引。
請確定用於篩選的數據行已正確編製索引,並在必要時重建這類索引。 如需詳細資訊,請參閱 重新組織與重建索引。
針對以唯一數據行為基礎的聯結篩選設定join_unique_key屬性。 如需相關資訊,請參閱 Join Filters。
限制聯結篩選階層中資料表的數量。 若您正在產生五個以上資料表的聯結篩選,請考慮其他方案:不要篩選小型、無法變更或主要為查詢資料表的資料表。 聯結篩選只能用於必須在訂閱中分割的資料表之間。
在同步處理之間對篩選數據表進行較少的變更,或更頻繁地執行 合併代理程式。 如需設定同步處理排程的詳細資訊,請參閱 指定同步處理排程。