次の方法で共有


MSSQL_REPL027183

メッセージの詳細

製品名

SQL Server

製品バージョン

10.0

製品ビルド番号

 

イベント ID

27183

イベント ソース

MSSQLSERVER

コンポーネント

SQL Server データベース エンジン

シンボル名

メッセージ テキスト

マージ処理で、パラメーター化された行フィルターを使用して、アーティクル内の変更情報を列挙できませんでした。 このエラーが継続して発生する場合、このプロセスのクエリ タイムアウト値を増やし、パブリケーションの保有期間を短縮し、パブリッシュされたテーブルのインデックスを強化してください。

説明

このエラーは、フィルター選択されたパブリケーションでの変更を処理中に、マージ エージェント タイムアウトになると発生します。 このタイムアウトは、次のいずれかの問題点により生じた可能性があります。

  • 事前計算済みパーティションの最適化の未使用

  • フィルター選択に使用される列のインデックスの断片化

  • MSmerge_tombstoneMSmerge_contentsMSmerge_genhistory などの、大規模なマージ メタデータ テーブル

  • 一意キーで結合されていないフィルター選択されたテーブルや多くのテーブルを含む結合フィルター

ユーザーの操作

問題を解決するには、以下の操作を実行します。

  • マージ エージェントの -QueryTimeOut パラメーターの値を大きくし、エラーの原因となっている根本的な問題に対処する間、処理を継続できるようにします。 エージェント パラメーターは、エージェント プロファイルおよびコマンド ラインで指定できます。 詳細については、以下を参照してください。

  • 可能であれば、事前計算済みパーティションの最適化を使用します。 既定では、この最適化は、多くのパブリケーションの要件が満たされている場合に使用されます。 これらの要件の詳細については、「事前計算済みパーティションによるパラメーター化されたフィルターのパフォーマンス最適化」を参照してください。 パブリケーションがこれらの要件を満たしていない場合は、パブリケーションを再設計することを検討してください。

  • パブリケーションの保有期間をできる限り低い設定に指定します。保有期間に達するまで、レプリケーションはパブリケーション データベースおよびサブスクリプション データベースでメタデータをクリーンアップできません。 詳細については、「サブスクリプションの有効期限と非アクティブ化」を参照してください。

  • マージ レプリケーションのメンテナンスの一環として、マージ レプリケーションに関連付けられたシステム テーブル MSmerge_contentsMSmerge_genhistoryMSmerge_tombstoneMSmerge_current_partition_mappings、および MSmerge_past_partition_mappings の増大を必要に応じて確認します。 定期的にこれらのテーブルのインデックスを再設定します。 詳細については、「インデックスの再編成と再構築」を参照してください。

  • フィルター選択に使用する列のインデックスが適切であることを確認し、必要に応じてインデックスを再構築します。 詳細については、「インデックスの再編成と再構築」を参照してください。

  • 一意な列に基づく結合フィルターの join_unique_key プロパティを設定します。 詳細については、「結合フィルター」を参照してください。

  • 結合フィルター階層のテーブル数を制限します。 テーブルが 5 つ以上の結合フィルターを生成する場合は、小さなテーブル、変更されないテーブル、プライマリ参照テーブルはフィルター選択しないという別の解決策を検討してください。 結合フィルターは、サブスクリプション間でパーティション分割する必要のあるテーブル間でのみ使用します。

  • 同期を行うまでの間はフィルター選択されたテーブルへの変更を少なくするか、マージ エージェントをより頻繁に実行します。 同期処理のスケジュール設定の詳細については、「同期スケジュールの指定」を参照してください。

関連項目

概念

エラーとイベントのリファレンス (レプリケーション)