如何:最佳化參數化資料列篩選器 (複寫 Transact-SQL 程式設計)
在使用參數化篩選器時,您可以在建立發行集時,藉由指定 [使用資料分割群組] 選項或 [保留資料分割變更] 選項來控制合併式複寫要如何處理篩選。這兩個選項都可以透過在發行集資料庫中儲存其他中繼資料,以提升具有篩選發行項之發行集的同步處理效能。您可以在建立發行項時,藉由設定 [資料分割選項] 來控制要如何在訂閱者之間共用資料。
如需有關這些需求的詳細資訊,請參閱<參數化資料列篩選器>。如需 @keep_partition_changes 和 @use_partition_groups 之篩選選項的定義,請參閱<sp_addmergepublication>。
在建立新的發行集時指定合併篩選最佳化
在發行集資料庫的發行者上,執行 sp_addmergepublication。指定 @publication,並針對下列其中一個參數指定 true 的值:
@use_partition_groups:- 最高效能最佳化,前提是發行項符合預先計算的資料分割需求。如需詳細資訊,請參閱<使用預先計算的資料分割最佳化參數化篩選效能>。
@keep_partition_changes - 在無法使用預先計算的資料分割時,使用此最佳化。
加入此發行集的快照集作業。如需詳細資訊,請參閱<如何:建立發行集 (複寫 Transact-SQL 程式設計)>。
在發行集資料庫的發行者上,執行 sp_addmergearticle 並指定下列參數:
@publication - 步驟 1 中發行集的名稱。
@article - 發行項的名稱。
@source_object - 發行的資料庫物件。
@subset_filterclause - 用來以水平方式篩選發行項的選擇性參數化篩選子句。
@partition_options - 篩選之發行項的資料分割選項。
針對發行集中的每一個發行項重複步驟 3。
(選擇性) 在發行集資料庫的發行者上,執行 sp_addmergefilter,以定義兩個發行項之間的聯結篩選。如需詳細資訊,請參閱<如何:定義和修改合併發行項之間的聯結篩選 (複寫 Transact-SQL 程式設計)>。
檢視及修改現有發行集的合併篩選行為
(選擇性) 在發行集資料庫的發行者上執行 sp_helpmergepublication,指定 @publication。請注意結果集中 keep_partition_changes 和 use_partition_groups 的值。
(選擇性) 在發行集資料庫的發行者上,執行 sp_changemergepublication。針對 @property 指定 use_partition_groups 的值,以及針對 @value 指定 true 或 false。
(選擇性) 在發行集資料庫的發行者上,執行 sp_changemergepublication。針對 @property 指定 keep_partition_changes 的值,以及針對 @value 指定 true 或 false。
[!附註]
在啟用 keep_partition_changes 時,您必須先停用 use_partition_groups,並針對 @force_reinit_subscription 指定 1 的值。
(選擇性) 在發行集資料庫的發行者上,執行 sp_changemergearticle。針對 @property 指定 partition_options 的值,並針對 @value 指定適當的值。如需這些篩選選項的定義,請參閱 sp_addmergearticle。
(選擇性) 在必要時,啟動快照集代理程式來重新產生快照集。如需有關哪些變更需要產生新快照集的詳細資訊,請參閱<變更發行集與發行項屬性>。