Einführung in die Leistungsstatistik tools für Replication Log Reader und Verteilung Replikations-agents

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 2892631
Einführung
Statistiken wurden die Mslogreader_historytable und die Msdistribution_historytable für die Verteilungsdatenbank in Microsoft SQL Server hinzugefügt. Diese Statistiken können Sie aktuelle Performance-Historie des Replication Log Reader und Verteilung Replikations-Agents finden Sie unter.

Hinweis Diese Änderung war erste Folgendes versucht SQL Server erstellt:
  • 9.00.4220
  • 9.00.3315
  • 10.00.1806
  • 10.00.2714

Alle fünf Minuten die Leistungsstatistiken für Agents Protokolllese- und Verteilung sind Recordedin Verlaufstabellen. Standardmäßig werden nur die Daten für den letzten 48 Stunden beibehalten. Eine Bereinigung entfernt die Daten, die älter als 48 Stunden. Standardmäßig kannSp_changedistributiondb gespeicherte Prozedur ausführen und einen neuen Wert für den Parameter History_retention geändert werden.

Folgendes ist Leistung Ausgabe der Verlaufstabelle des Protokolllese-Agents aus:

<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> 

Es gibt drei Status Ereignisse, die aufgezeichnet werden können:
ZustandBeschreibung
1Normale Ereignisse, die der Reader und Writer Thread Leistung beschreiben.
2Ereignisse, die auftreten, wenn ein Agent Readerthread länger als der Agent - MessageintervalZeit wartet ausgelöst. (Standardmäßig ist die Zeit 60 Sekunden). Bemerken Sie Status 2 Ereignisse, die für einen Agenten aufgezeichnet werden, bedeutet dies, dass der Agent Änderungen in das Ziel geschrieben lange ist.
3Ausgelöst, die vom Protokolllese-Agent generiert werden, wenn der Writerthread mehr Zeit- Messageintervalwartet. Bemerken Sie Status 3 Ereignisse, die für den Protokolllese-Agent erfasst werden, bedeutet dies, dass der Agent replizierte Änderung aus dem Transaktionslog scannen zu lange ist.
Verteilung Agent Readerthread
Die folgenden Performance-Statistiken zeigen eine Situation, in der Wartezeit in der Replikationstopologie und in der Engpass Readerthread Verteilungsagent ist. Dieser Thread fragt (Datenbank VerteilungVerteilungsserver&gt;.. MSdistribution_history.Commentstable) für Befehle auf dem Abonnenten angewendet.

<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" Writer-Wartezeit (212 Sekunden) wird hoch. Dies ist die Zeit, die der Writerthread wartet Readerthread Puffer bereitgestellt, die der Schreiberthread in der Abonnentendatenbank anwenden können. Ergebnisanzeige Agent Leserthread führt die ProzedurSp_MSget_repl_commands gespeichert.

Bemerken Sie hohe Wartezeiten in der Verteilungsagent Leistungsstatistiken Writer, sollten die Leistung der Verteilungsagent Ausführung für Verteilergruppen-Server und Datenbank überprüfen. Überprüfen Sie insbesondere die Ausführungszeit der ProzedurSp_MSget_repl_commands gespeichert.
Verteilung Agent Writerthread
Die folgenden Performance-Statistiken zeigen eine Situation, in der Wartezeit in der Replikationstopologie und in der Engpass Readerthread Verteilungsagent ist. Dieser Thread fragt (Datenbank VerteilungVerteilungsserver&gt;.. MSdistribution_history.Comments Tabelle) für Befehle auf dem Abonnenten angewendet.

Hinweis Der Zustand ist 2, und die Ausgabe von Statistiken Status 1. 2 Status Daten darauf hin, dass der Readerthread warten länger als der Standardwert konfiguriertenMessageinterval - Wert. Standardmäßig ist der Wert - Messageinterval 60 Sekunden.

<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-Wert erhöht wird, erhalten Sie erneut Status 1 Statistiken, die den folgenden ähneln:

<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>


Hinweis Sincelaststats Fetch-Wartezeit 505 Sekunden ist sehr hoch.

Bemerken Sie hohe Wartezeiten in der Verteilungsagent Leistungsstatistiken Leser sollten die Leistung der Verteilungsagent Ausführung für Abonnentenserver und Datenbank überprüfen. Mithilfe der Profiler-Ablaufverfolgungsprogramm Leistung für die Ausführung der gespeicherten Replikationsprozeduren untersuchen. Gespeicherten Prozeduren werden in der Regel folgendermaßen benannt:
  • sp_MSupd_ownertablename>
  • sp_MSins_ownertablename>
  • sp_MSdel_ownertablename>
Verwenden Sie außerdem bestimmen, ob der Engpass Hardware oder System ist-Systemmonitor zum Überwachen der Systemleistung. Beispielsweise verwenden Sie der Leistung des Bildschirms die Physikalischer Datenträger-Leistungsindikatoren.
Log Reader Agent Readerthread
Die folgenden Performance-Statistiken zeigen eine Situation, in der Wartezeit in der Replikationstopologie und in dem der Engpass Readerthread Protokolllese-Agent ist. Der Protokolllese-Agent Readerthread scannt das Transaktionslog publizierten Datenbank Befehle an die Verteilungsdatenbank übermittelt.

<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>


Sincelaststats Writer warten Statistik 288 Sekunden erscheint hoch. Dies ist die Zeit Readerthread Puffer anwenden angeben der Writerthread wartet. Der Protokolllese-Agent Leserthread führt die ProzedurSp_replcmdsgespeichert. Bemerken Sie hohe Writer Protokolllese-Agent Statistiken Threads warten, Sie überprüfen die Leistung der Ausführung Protokolllese-Agent für die Publikationsserver und Datenbank und überprüfen Sie die Ausführungszeit der ProzedurSp_replcmds gespeichert.

Folgendes ist die Beschreibung der Performance-Statistik:
StatistikZustandBeschreibung
ZustandStatus 1: Dieser Status Gibt an, dass der Bericht nach einem Commit Batch üblich.

Status 2: Reader Thread gibt an, dass ein Batch lesen wartet länger als der Wert für Eigenschaft Messageinterval.

Betriebsart 3: Writerthread gibt an, dass ein Batch schreiben länger als- Messageinterval -Wert wartet.
Befehlenur 2Dieser Status gibt die Anzahl der Befehle, die vom Agent Ergebnisanzeige gelesen werden.
callstogetreplcmdsnur 2Dieser Status zeigt die Anzahl der Aufrufe der Sp_MSget_repl_commandsgespeicherten Prozedur an.
ArbeitDer Wert gibt die kumulierte Zeit der Agent auf Arbeit seit der letzten Agent. Die Zeit schließt die Leerlaufzeit.
im LeerlaufDer Wert gibt die kumulierte Zeit, die der Agent Sp_replcmds gespeicherten wartet Prozedur aufrufen, wenn der vorherigen keine Transaktionen Aufrufs oder die Anzahl der Transaktionen seit der letzten Agent kleiner als der Wert für die Eigenschaft MaxTrans ist.
Reader abrufenDer Wert gibt die kumulierte Zeit der Leser seit dem letzten Start des Agenten. Die Zeit schließt die im Leerlauf und Warten für Writer.
Reader wartenDer Wert gibt die kumulierte Wartezeit für Writer Zeit seit der letzten Agent. Der Wert zeigt die Zeit ist wartet Writer verwendet den Datenpuffer bevor Reader Datenpuffer erneut ausfüllen kann.
Writer schreibenDer Wert gibt die kumulierte Zeit der Writer seit der letzten Agent. Die Zeit schließt die im Leerlauf und Warten für Reader.

Warten Writer stellt dieser Wert Wartezeit für Reader Zeit seit der letzten Agent. Der Wert zeigt die Zeit, die gewartet wird, dass Readerthread Auffüllen des Datenpuffers vor der Writer den Datenpuffer anwenden kann.
sincelaststats_elapsed_timeSincelaststats-Knoten zeigt ähnliche Statistiken für ab beim letzten erfassten Statistiken-Ereignis. In der Standardeinstellung beträgt fünf Minuten. Die Zeit schließt die Leerlaufzeit. Der Wert gibt die Zeit, die seit dem letzten erfassten Statistiken Ereignisses vergangen.
Sincelaststats ArbeitDer Wert gibt die Zeit der Agent seit dem letzten Ereignis Statistiken.
Sincelaststats BefehleDer Wert stellt die Gesamtzahl der seit dem letzten Ereignis Statistiken.
Sincelaststats cmdspersecDer Wert stellt die Anzahl der Befehle, die pro Sekunde seit dem letzten Statistiken Ereignis ausgeführt werden.
Sincelaststats\reader abrufenDer Wert gibt die kumulierte Zeit der Leser seit dem letzten Ereignis Statistiken. Die Zeit schließt die im Leerlauf und Warten für Writer.
Sincelaststats\reader wartenDer Wert gibt die kumulierte Wartezeit für Writer Zeit seit dem letzten Ereignis Statistiken. Der Wert zeigt die Zeit ist wartet Writer verwendet den Datenpuffer bevor Reader Datenpuffer erneut ausfüllen kann.
sincelaststats\writerWert darstellt, seit dem letzten Ereignis Statistik ausgegebene Writer die kumulative Zeit. Die Zeit schließt die im Leerlauf und Warten für Reader.
Sincelaststats\writer wartenDer Wert stellt die Wartezeit für Reader Zeit seit dem letzten Ereignis Statistiken. Der Wert zeigt die Zeit, die gewartet wird, dass der Leserthread Auffüllen des Datenpuffers bevor Writer Datenpuffer anwenden kann.
Skript laden MSlogreader_history und MSdistribution_history führen Statistiken aus XML-Daten in eine Tabelle, die leicht abgefragt werden können
Sind 4 Skript Beispiele Performance-Statistiken in eine permanente Tabelle zu extrahieren, die leicht abgefragt werden können. Auch eine gespeicherte Prozedur, die etwa Protokolllese-Agent Statistiken zum Snapshot-Agent Statistiken verknüpft ist (d. h. der Perf_stats_tab-Tabelle).

Erhalten Sie die BeispielskriptsIn diesem Beispielund klicken Sie auf KB2892631.zipund Uncompressfile KB2892631.zip, sehen Sie die folgenden vier Skriptdateien:
  • Ursprüngliche Version der Perf_stats_script.sql-file:perf_stats_script.sql
  • Überarbeitete Usp_move_stats_to_table.sql Datei: usp_move_stats_to_table.sql
  • Überarbeitete Sp_endtoend_stats.sql Datei: sp_endtoend_stats.sql
  • Ein anderes Skript zum Lesen der Daten in Echtzeit oder eine Verteilerliste Sicherung: Additional_Script.sql

Hinweise

  • Die Perf_stats_tab-Tabelle enthält Leistungsstatistiken für den Protokolllese-Agent und der. Die Statistik abgefragt werden separat mithilfe des, = 'VERT'-Klausel oder der Typ, in dem = '' LogRead ''-Klausel.
  • Move_stats_to_tab, gespeicherte Prozedur öffnet einen Cursor für die Mslogreader_history-Tabelle und die Msdistribution_history-Tabelle und ruft dann Move_stats_to_tab gespeicherte Prozedur für jede Zeile um Leistungsdaten Statistiken XML in der Perf_stats_tab Tabelle extrahieren.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 2892631 – Letzte Überarbeitung: 05/04/2016 07:43:00 – Revision: 2.0

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2892631 KbMtde
Feedback