パラメータ化された行フィルタを最適化する方法 (レプリケーション Transact-SQL プログラミング)

パラメータ化されたフィルタを使用する場合、パブリケーションを作成する際に @use_partition_groups オプションまたは @keep_partition_changes オプションを指定して、マージ レプリケーションでのフィルタの処理方法を制御できます。この 2 つのオプションを使用し、パブリケーション データベースに追加のメタデータを格納することで、アーティクルをフィルタ選択し、パブリケーションの同期パフォーマンスを向上できます。アーティクルを作成する際に @partition_options を設定することで、サブスクライバ間でデータを共有する方法を制御できます。

これらの要件の詳細については、「パラメータ化された行フィルタ」を参照してください。@keep_partition_changes および @use_partition_groups のフィルタ オプションの定義については、「sp_addmergepublication」を参照してください。

新しいパブリケーションを作成するときにマージ フィルタの最適化を指定するには

  1. パブリッシャ側のパブリケーション データベースに対して、sp_addmergepublication を実行します。@publication を指定し、次のいずれかのパラメータに true を指定します。

  2. パブリケーション用のスナップショット ジョブを追加します。詳細については、「パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  3. パブリッシャ側のパブリケーション データベースに対して、sp_addmergearticle を実行します。次のパラメータを指定します。

    • @publication - 手順 1. で指定したパブリケーション名
    • @article - アーティクルの名前
    • @source_object - パブリッシュするデータベース オブジェクト
    • @subset_filterclause - アーティクルを行方向にフィルタ選択するために使用する、オプションのパラメータ化されたフィルタ句
    • @partition_options - フィルタ選択されるアーティクルのパーティション オプション
  4. パブリケーションの各アーティクルに対し、手順 3. を実行します。

  5. (省略可) パブリッシャ側のパブリケーション データベースに対して sp_addmergefilter を実行し、2 つのアーティクル間に結合フィルタを定義します。詳細については、「マージ アーティクル間の結合フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

既存のパブリケーションに対するマージ フィルタの動作を表示して変更するには

  1. (省略可) パブリッシャ側のパブリケーション データベースに対し、@publication を指定して sp_helpmergepublication を実行します。結果セットの keep_partition_changes および use_partition_groups の値を調べます。

  2. (省略可) パブリッシャ側のパブリケーション データベースに対して、sp_changemergepublication を実行します。@property には use_partition_groups を指定し、@value には true または false を指定します。

  3. (省略可) パブリッシャ側のパブリケーション データベースに対して、sp_changemergepublication を実行します。@property には keep_partition_changes を指定し、@value にはtrue または false を指定します。

    ms146958.note(ja-jp,SQL.90).gifメモ :
    keep_partition_changes を有効にする場合、まず use_partition_groups を無効にして、@force_reinit_subscription1 を指定します。
  4. (省略可) パブリッシャ側のパブリケーション データベースに対して、sp_changemergearticle を実行します。@propertypartition_options を指定し、@value に適切な値を指定します。このフィルタ選択オプションの定義については、「sp_addmergearticle」を参照してください。

  5. (省略可) 必要に応じてスナップショット エージェントを開始し、スナップショットを再生成してください。新しいスナップショットの生成が必要な変更の詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。