メッセージの詳細
| 製品名 | SQL Server |
| イベント ID | 27183 |
| イベント元 | MSSQLSERVER |
| コンポーネント | SQL Server データベース エンジン |
| シンボル名 | |
| メッセージ テキスト | マージ プロセスでは、パラメーター化された行フィルターを使用してアーティクルの変更を列挙できませんでした。 このエラーが引き続き発生する場合は、このプロセスのクエリ タイムアウトを増やし、パブリケーションの保持期間を短縮し、パブリッシュされたテーブルのインデックスを改善します。 |
説明
このエラーは、フィルター処理されたパブリケーションでの変更の処理中にマージ エージェントのタイムアウトが発生した場合に発生します。 タイムアウトは、次のいずれかの問題によって発生する可能性があります。
事前計算済みパーティションの最適化を使用していません。
フィルター処理に使用される列のインデックスの断片化。
MSmerge_tombstone、MSmerge_contents、MSmerge_genhistoryなどの大規模なマージ用メタデータ テーブル。
一意キーで結合されていないフィルター適用テーブルと、多数のテーブルに関連する結合フィルター。
ユーザー操作
この問題を解決するには:
マージ エージェントの -QueryTimeOut パラメーターの値を大きくして、エラーの原因となっている根本的な問題に対処しながら処理を続行できるようにします。 エージェント パラメーターは、エージェント プロファイルおよびコマンド ラインで指定できます。 詳細については、以下を参照してください。
可能であれば、事前計算済みパーティションの最適化を使用します。 この最適化は、多数のパブリケーション要件が満たされている場合に既定で使用されます。 これらの要件の詳細については、「 事前計算済みパーティションを使用したパラメーター化されたフィルターパフォーマンスの最適化」を参照してください。 パブリケーションがこれらの要件を満たしていない場合は、パブリケーションの再設計を検討してください。
レプリケーションでは、保有期間に達するまでパブリケーションおよびサブスクリプション データベースのメタデータをクリーンアップできないため、パブリケーションの保持期間に可能な最小の設定を指定します。 詳細については、「サブスクリプションの 有効期限と非アクティブ化」を参照してください。
マージ レプリケーションのメンテナンスの一環として、マージ レプリケーションに関連付けられているシステム テーブルの増加 ( MSmerge_contents、 MSmerge_genhistory、 MSmerge_tombstone、 MSmerge_current_partition_mappings、 MSmerge_past_partition_mappings) を確認することがあります。 これらのテーブルのインデックスを定期的に再作成します。 詳細については、「 インデックスの再編成と再構築」を参照してください。
フィルター処理に使用する列のインデックスが適切に作成されていることを確認し、必要に応じてそのようなインデックスを再構築します。 詳細については、「 インデックスの再編成と再構築」を参照してください。
一意の列に基づく結合フィルターの join_unique_key プロパティを設定します。 詳細については、「 結合フィルター」を参照してください。
結合フィルター階層内のテーブルの数を制限します。 5 つ以上のテーブルの結合フィルターを生成する場合は、他の解決策を検討してください。小さいテーブル、変更されないテーブル、または主に参照テーブルであるテーブルをフィルター処理しないでください。 結合フィルターは、サブスクリプション間でパーティション分割する必要があるテーブル間でのみ使用します。
同期間でフィルター処理されたテーブルに対して変更を少なくするか、マージ エージェントをより頻繁に実行します。 同期スケジュールの設定の詳細については、「同期 スケジュールの指定」を参照してください。