現在オフラインです。再接続するためにインターネットの接続を待っています

レプリケーション ログ リーダーとディストリビューションのレプリケーション エージェントのパフォーマンスの統計ツールの概要

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:2892631
はじめに
パフォーマンスの統計情報は、mslogreader_historytable および Microsoft SQL Server で、ディストリビューション データベースの msdistribution_historytable に追加されました。これらの統計情報を使用するには、レプリケーション ログ リーダー エージェントおよびレプリケーション ディストリビューション エージェントの最新のパフォーマンスの履歴を確認します。

注: <b>これらの変更が最初、次の SQL Server を構築します。
  • 9.00.4220
  • 9.00.3315
  • 10.00.1806
  • 10.00.2714

5 分ごとに、ログ リーダーとディストリビューション エージェントのパフォーマンスの統計情報は、recordedin の履歴テーブルです。既定では、過去 48 時間のデータのみが保持されます。クリーンアップ処理は、48 時間を経過したデータを削除します。Sp_changedistributiondbストアド プロシージャを実行し、 history_retentionパラメーターの新しい値を指定することにより、既定値を変更できます。

ログ リーダー エージェントのヒストリ テーブルからパフォーマンス出力の例を次に示します。

<stats state="1" work="9" idle="295">  <reader fetch="8" wait="0"/>  <writer write="9" wait="0"/>  <sincelaststats elapsedtime="304" work="9" cmds="52596" cmdspersec="5753.000000">    <reader fetch="8" wait="0"/>    <writer write="9" wait="0"/>  </sincelaststats></stats> 

3 つの状態イベントを記録できますがあります。
状態説明
1リーダーとライターの両方のスレッドのパフォーマンスを説明する通常のイベントです。
2エージェントのリーダー スレッドがエージェントのmessageintervalの時間よりも長く待機する場合に発生するイベントを発生します。(既定では、時間は 60 秒) です。エージェントの記録されている状態の 2 イベントが発生した場合は、エージェントとデスティネーションへの変更の書き込みに時間がかかっていることを示します。
3ライター スレッドが-messageinterval時間よりも長く待機する場合にのみ、ログ リーダー エージェントによって生成されるイベントが発生します。状態 3 のイベント ログ リーダー エージェントの記録されていることを確認する場合は、エージェント トランザクション ログからのレプリケートされた変更のスキャンに時間がかかっていることを示します。
ディストリビューション エージェントのリーダー スレッド
次のパフォーマンスの統計情報は、レプリケーション トポロジとボトルネックは、ディストリビューション エージェントのリーダー スレッドの待機時間がいる場合を示しています。このスレッドに対してクエリを実行、ディストリビューション データベース (ディストリビューション サーバー>.. MSdistribution_history.Commentstable) のサブスクライバーで適用するためのコマンドです。

<stats state="1" work="14798" idle="2035">
<reader fetch="14798" wait="193"></reader>
<writer write="12373" wait="9888"></writer>
<sincelaststats elapsedtime="424" work="415" cmds="296900" cmdspersec="713.000000">
<reader fetch="415" wait="7"></reader>
<writer write="377" wait="212"></writer>
</sincelaststats>
</stats>


高としたときに"sincelaststats"の書き込み待機時間 (212 秒) が表示されます。ライター スレッドは、サブスクライバー データベースに適用可能なバッファーを提供するリーダー スレッドはライター スレッドが待機する時間です。配布エージェント リーダー スレッドでは、sp_MSget_repl_commandsストアド プロシージャを実行します。

高いライターのディストリビューション エージェントのパフォーマンスの統計情報で、待ち時間が発生した場合は、ディストリビューション サーバーおよびデータベースに対するディストリビューション エージェントの実行のパフォーマンスを調べる必要があります。具体的には、sp_MSget_repl_commandsストアド プロシージャの実行時間を調査する必要があります。
ディストリビューション エージェントのライター スレッド
次のパフォーマンスの統計情報は、レプリケーション トポロジとボトルネックは、ディストリビューション エージェントのリーダー スレッドの待機時間がいる場合を示しています。このスレッドに対してクエリを実行、ディストリビューション データベース (ディストリビューション サーバー>.. MSdistribution_history.Comments のテーブル) のサブスクライバーで適用するためのコマンドです。

注: <b>状態は、2、および、出力が 1 の状態の統計情報とは少し異なる。2 状態のデータでは、ディストリビューション エージェントのよりも長くするにはリーダー スレッドがあったことを示します- messageintervalの値を設定します。既定では、 messageintervalの値が 60 秒です。

<stats state="2" fetch="48" wait="384" cmds="1028" callstogetreplcmds="321">
<sincelaststats elapsedtime="312" fetch="47" wait="284" cmds="1028" cmdspersec="3.000000"></sincelaststats>
</stats>


Messageintervalの値が増やされた場合、もう一度以下のような状態の 1 の統計情報が表示されます。

<stats state="1" work="1941" idle="0">
<reader fetch="717" wait="1225"></reader>
<writer write="1941" wait="134"></writer>
<sincelaststats elapsedtime="764" work="764" cmds="1170730" cmdspersec="1530.000000">
<reader fetch="258" wait="505"></reader>
<writer write="764" wait="50"></writer>
</sincelaststats>
</stats>


注: <b>505 秒の sincelaststats フェッチの待機時間は、非常に高い。

高リーダーがディストリビューション エージェントのパフォーマンスの統計情報で、待ち時間が発生した場合は、サブスクライバーのサーバーおよびデータベースに対するディストリビューション エージェントの実行のパフォーマンスを調べる必要があります。レプリケーション ストアド プロシージャの実行のパフォーマンスを調査するのにには、プロファイラーのトレース ツールを使用します。通常のストアド プロシージャは次のように命名されます。
  • sp_MSupd_ownertablename>
  • ownertablename>
  • 呼び出されるownertablename>
さらに、ボトルネックは、ハードウェア ベースまたはシステムに基づくかどうかを確認するのには、システム パフォーマンスを監視するのにパフォーマンス モニターを使用します。などを使用してパフォーマンス モニターの物理ディスク カウンターです。
ログ リーダー エージェントの読み取りスレッド
次のパフォーマンスの統計情報は、状況では、レプリケーション トポロジとボトルネックがログ リーダー エージェントの読み取りスレッドの待機時間を示しています。ログ リーダー エージェントのリーダー スレッドは、ディストリビューション データベースに配信するためのコマンドのパブリッシュされたデータベースのトランザクション ログをスキャンします。

<Distribution server="">.. は、MSlogreader_history.Comments

</Distribution>
<stats state="1" work="301" idle="0">
<reader fetch="278" wait="0"></reader>
<writer write="12" wait="288"></writer>
<sincelaststats elapsedtime="301" work="301" cmds="104500" cmdspersec="347.000000">
<reader fetch="278" wait="0"></reader>
<writer write="12" wait="288"></writer>
</sincelaststats>
</stats>


高 288 秒の sincelaststats ライター待機の統計情報が表示されます。適用するバッファーを指定するのにはリーダー スレッドはライター スレッドが待機する時間です。ログ リーダー エージェントのリーダー スレッドは、sp_replcmdsストアド プロシージャを実行します。高いライターがログ リーダー エージェントのパフォーマンス統計情報内のスレッドの待機が発生した場合、パブリケーション サーバーとデータベースに対するログ リーダー エージェントの実行のパフォーマンスを調査し、sp_replcmdsストアド プロシージャの実行時間を調査してください。

各パフォーマンス統計情報の説明を次に示します。
統計情報状態説明
状態状態 1: この状態では、パフォーマンス レポートは、バッチのコミット後通常を示します。

状態 2: スレッドがバッチを読み取ることを示すリーダーは、messageinterval プロパティの値よりも長い時間を待機します。

状態 3: ライター スレッドは、バッチ書き込みがmessageintervalの値より長い時間を待機することを示します。
コマンド2 のみこの状態では、配布エージェントによって読み取られるコマンドの数を示します。
callstogetreplcmds2 のみこの状態では、ディストリビューション エージェントがsp_MSget_repl_commandsストアド プロシージャへの呼び出しの数を示します。
作業エージェントは、エージェントの前回の開始以降、作業に費やされた時間の累計値を表します。時間は、アイドル時間を除外します。
アイドルSp_replcmdsストアド プロシージャを呼び出す前の呼び出しにはトランザクションが返されないとき、またはトランザクションの数は、前回のエージェントの開始以降、 MaxTransプロパティの値よりも小さい場合にエージェントが待機する時間の累計値を表します。
リーダーのフェッチ値は、リーダーが最後のエージェントの開始以降に費やされた合計時間を表します。時間は、アイドル時間とのライターの待機時間を除外します。
リーダーの待機値は、前回のエージェントの開始以降累積・ ライターの待機時間を表します。値は、リーダーでは、データ バッファーをもう一度入力する前にデータ バッファーの使用を完了するのにはライター スレッドの待機に費やされる時間を示しています。
ライターの書き込み値は、ライターが前回のエージェントの開始以降に費やされた合計時間を表します。時間は、アイドル時間とのリーダーの待機時間を除外します。

ライターの待機は、この値は、前回のエージェントの開始以降のリーダーの待機時間を表します。値は、ライターがデータ バッファーを適用する前にデータ バッファーの作成を完了するのにはリーダー スレッドの待機に費やされる時間を示しています。
sincelaststats_elapsed_timeSincelaststats ノードでは、最後の統計情報が記録されたイベントの期間の開始のような統計が表示されます。既定では、期間は 5 分です。時間は、アイドル時間を除外します。値は、最後の統計情報が記録されたイベントからの経過時間を表します。
sincelaststats 作業値は、エージェントが統計 (stats) の最後のイベント以降に費やされた時間を表します。
sincelaststats コマンド値は、統計 (stats) の最後のイベント以降のコマンドの数を表します。
sincelaststats cmdspersec値は、統計 (stats) の最後のイベント以降の 1 秒あたりに実行されるコマンドの数を表します。
sincelaststats\reader フェッチ値は、リーダーが最後の統計 (stats) イベント以降に費やされた合計時間を表します。時間は、アイドル時間とのライターの待機時間を除外します。
sincelaststats\reader 待機値は、統計 (stats) の最後のイベント以降の累積のライターの待機時間を表します。値は、リーダーでは、データ バッファーをもう一度入力する前にデータ バッファーの使用を完了するのにはライター スレッドの待機に費やされる時間を示しています。
sincelaststats\writer値を表しますそのライターの統計 (stats) の最後のイベント以降に費やされた時間の累積的なのです。時間は、アイドル時間とのリーダーの待機時間を除外します。
sincelaststats\writer 待機値は、統計 (stats) の最後のイベント以降のリーダーの待機時間を表します。値は、ライターがデータ バッファーを適用する前にデータ バッファーの作成を完了するのにはリーダー スレッドの待機に費やされる時間を示しています。
MSlogreader_history および MSdistribution_history を簡単に照会されるテーブルに XML データから統計の実行を読み込むためのスクリプト
簡単に照会できる永続的なテーブルに、パフォーマンスの統計情報を抽出する 4 つのスクリプトのサンプルのヘルプがあります。約するディストリビューション エージェントのパフォーマンスの統計情報ログ リーダー エージェントのパフォーマンス統計情報を対応するストアド プロシージャもあります (つまり、perf_stats_tab テーブルに)。

スクリプトのサンプルを取得するには、次を参照してください。このサンプルクリックし、 KB2892631.zip、uncompressfile KB2892631.zip が表示されます次の 4 つのスクリプト ファイルを作成します。
  • Original version of the Perf_stats_script.sql file:perf_stats_script.sql
  • 改訂された Usp_move_stats_to_table.sql ファイル: usp_move_stats_to_table.sql
  • 改訂された Sp_endtoend_stats.sql ファイル: sp_endtoend_stats.sql
  • リアルタイムで、またはディストリビューション データベースのバックアップからデータを読み取るための別のスクリプト: Additional_Script.sql

注:

  • Perf_stats_tab テーブルには、ログ リーダー エージェントおよびディストリビューション エージェントの両方のパフォーマンスの統計情報が含まれています。統計問い合わせることができましていない独立している型を使用して '均等 + 行末' 句または場所の種類を = = 'LogRead' 句。
  • Move_stats_to_tab が格納されている手順は、mslogreader_history テーブルおよび msdistribution_history テーブルでカーソルをオープンし、perf_stats_tab テーブルに XML のパフォーマンス統計情報のデータを抽出するために行ごとに格納されている move_stats_to_tab プロシージャを呼び出します。

プロパティ

文書番号:2892631 - 最終更新日: 05/04/2016 10:56:00 - リビジョン: 2.0

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2892631 KbMtja
フィードバック
cript type="text/javascript" src="https://c.microsoft.com/ms.js">