Freigeben über


Replay Markup Language (RML) Utilities for SQL Server

In diesem Artikel wird eine Gruppe von Tools erläutert, die von Supportexperten zur Problembehandlung bei Microsoft SQL Server verwendet werden.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 944837

Was sind RML-Dienstprogramme?

Die RML-Hilfsprogramme sind eine Reihe von Diagnosetools zur Problembehandlung und zur Unterstützung von Leistungsproblemen in SQL Server. Sie können sich diese als ähnlich vorstellen wie Tools, die medizintechnische Techniker bei der Verarbeitung von Röntgen-, MRT- und CT-Scanergebnissen unterstützen. RML-Dienstprogramme werden verwendet, um die von Benutzern gesammelten Leistungsdiagnosedaten zu verarbeiten und zu visualisieren. Diese Tools werden häufig von SQL Server-Supporttechnikern verwendet, um Diagnoseablaufverfolgungen zu verarbeiten, während sie ein Leistungsproblem beheben. Außerdem werden RML-Hilfsprogramme häufig von Datenbankentwicklern und -administratoren verwendet, um ihre SQL Server-Abfragearbeitsauslastung aus ihren Test- und Produktionsumgebungen zu analysieren und zu verbessern. Es gibt drei Dienstprogramme in der Suite: ReadTrace, Reporter und Ostress.

  • ReadTrace übernimmt erweiterte Ereignisablaufverfolgungen oder SQL Trace-Ablaufverfolgungen , die ein Benutzer erstellt, um ein SQL Server-Problem zu diagnostizieren oder die Workloadleistung zu analysieren. ReadTrace importiert die Ablaufverfolgungen in Tabellen in einer SQL Server-Datenbank, die vom Benutzer angegeben wird. Stellen Sie sich ReadTrace als Transformationstool vor: Sie verwendet Binärdateien .XEL oder .TRC Dateien und importiert sie in Tabellen, damit sie einfacher über SQL-Abfragen analysiert werden können. ReadTrace kann auch Replay Markup Language generieren (. RML)-Dateien, die von Ostress für die Arbeitsauslastungswiedergabe verwendet werden können.
  • Reporter ist ein Bericht- und Visualisierungstool, das eine Verbindung mit der Benutzerdatenbank herstellt, die ReadTrace erstellt. Reporter führt SQL-Abfragen für die Datenbank aus und zeigt Offline-SSRS-Berichtszusammenfassungen der ursprünglichen Erweiterten Ereignisse oder Profiler-Ablaufverfolgungen an. Beispielsweise kann in einem Bericht angezeigt werden, welche Abfragen in einer bestimmten erfassten Workload am längsten ausgeführt wurden, die die meisten CPU verwendet und welche die meisten Lesevorgänge ausgeführt haben.
  • Ostress ist ein Stresstestsimulationstool. Ostress.exe verwendet Diagnoseablaufverfolgungen für erweiterte Ereignisse oder SQL Profiler als Eingabe. Sie kann auch vom Benutzer bereitgestellte Abfragen als Eingaben akzeptieren. Ostress gibt dann diese Ablaufverfolgungen oder Abfragen für eine sql Server-Instanz wieder, die der Benutzer auswäht. Ziel ist es, Stress zu simulieren. Wenn Sie z. B. OStress eine Abfrage wie select * from table1"OStress" bereitstellen, können Sie sie anweisen, die Abfrage 100 Mal gleichzeitig auf 50 Verbindungen auszuführen. Zusätzlich zu einzelnen Abfragen kann Ostress spezielle RML-Dateien verwenden, die ReadTrace generiert, um die Wiedergabe auszuführen.
  • OStress Replay Control Agent (ORCA) unterstützt Ostress beim Simulieren eines Stresstests, indem eine Workload aus RML-Dateien wiedergegeben wird. Sie interagieren nicht direkt mit ORCA, sondern verwenden Ostress.

Eine vollständige Beschreibung aller Tools und Beispielverwendungen finden Sie in der RML-Hilfedatei, die in RML Utilities für SQL Server enthalten ist.

Wie sind RML Utilities nützlich?

Sie können RML-Hilfsprogramme für SQL Server verwenden, um die folgenden Aufgaben auszuführen:

  • Ermitteln Sie, welche Anwendung, Datenbank, SQL Server-Anmeldung oder Abfrage die maximalen Ressourcen verwendet.
  • Bestimmen Sie, ob der Ausführungsplan für einen Batch geändert wird, wenn Sie die Ablaufverfolgung für den Batch erfassen. Darüber hinaus können Sie RML-Hilfsprogramme für SQL Server verwenden, um zu bestimmen, wie SQL Server diese Pläne ausführt.
  • Ermitteln Sie, welche Abfragen langsam ausgeführt werden.

Nachdem Sie eine Ablaufverfolgung für eine Instanz von SQL Server erfasst haben, können Sie RML-Hilfsprogramme für SQL Server verwenden, um die Ablaufverfolgungsdatei für eine andere Instanz von SQL Server wiederzugeben. Wenn Sie die Ablaufverfolgung auch während der Wiedergabe erfassen, können Sie RML Utilities für SQL Server verwenden, um die neue Ablaufverfolgungsdatei mit der ursprünglichen Ablaufverfolgungsdatei zu vergleichen. Sie können diese Technik verwenden, um zu testen, wie SICH SQL Server verhält, nachdem Sie Änderungen angewendet haben. Sie können diese Technik beispielsweise verwenden, um zu testen, wie SICH SQL Server verhält, nachdem Sie die folgenden Aufgaben ausgeführt haben:

  • Installieren Sie ein SQL Server Service Pack.
  • Installieren Sie ein kumulatives SQL Server-Update.
  • Aktualisieren einer gespeicherten Prozedur oder einer Funktion.
  • Dient zum Aktualisieren oder Erstellen eines Indexes.

Vorteile von RML-Dienstprogrammen für SQL Server

RML Utilities for SQL Server ist nützlich, wenn Sie Anwendungstests simulieren möchten, wenn es unpraktisch oder unmöglich ist, mithilfe der realen Anwendung zu testen. In einer Testumgebung kann es schwierig sein, dieselbe Benutzerlast zu generieren, die in der Produktionsumgebung vorhanden ist. Sie können RML-Hilfsprogramme für SQL Server verwenden, um eine Produktionsarbeitsauslastung in einer Testumgebung wiederzuverwenden und die Leistungswirkung aller Änderungen zu bewerten. Sie können beispielsweise ein Upgrade auf SQL Server 2008 oder die Anwendung eines SQL Server Service Packs testen. Darüber hinaus können Sie RML-Hilfsprogramme für SQL Server verwenden, um verschiedene Replay-Workloads zu analysieren und zu vergleichen. Die manuelle Durchführung dieser Regressionsanalyse ist schwierig.

Die Hilfedatei enthält ein Schnellstartthema. Dieses Thema enthält eine kurze Übung, die Sie mit jedem RML-Tool vertraut gemacht hat. Um die Hilfedatei zu öffnen, wählen Sie >"Alle Programme>RML-Hilfsprogramme für DIE RML-Hilfehilfe> für SQL Server>starten" aus.

Downloadspeicherort und Versionsverlauf

Sie können den Versionsverlauf von RML Utilities in dieser Tabelle überprüfen und die Tools von hier herunterladen.

Versionsnummer Beschreibung
09.04.0103 Gibt die aktuelle Webversion an, die im Microsoft Download Center verfügbar ist. Es unterstützt alle veröffentlichten Versionen von SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 und SQL Server 2008).
09.04.0102 Gibt die vorherige Webversion an, die im Microsoft Download Center verfügbar ist. Es unterstützt alle veröffentlichten Versionen von SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 und SQL Server 2008).
9.04.0100 Gibt eine frühere Webversion an, die im Microsoft Download Center verfügbar ist. Es unterstützt alle veröffentlichten Versionen von SQL Server (SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 und SQL Server 2000).
9.04.0098 Gibt ein vorheriges Web release-Paket an, das im Assistent für Datenbankexperimente-Tool enthalten ist. Es unterstützt alle veröffentlichten Versionen von SQL Server.
9.04.0097 Eine frühere Version von der SQL Nexus-Website, die alle veröffentlichten Versionen von SQL Server unterstützt.
9.04.0051 Eine frühere Webversion, die im Microsoft Download Center verfügbar ist, das SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 und SQL Server 2000 unterstützt.
9.04.0004 Eine frühere Webversion, die SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 und SQL Server 2000 unterstützt.
9.01.0109 Eine frühere Webversion, die SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 und SQL Server 2000 unterstützt.
9.00.0023 Eine frühere Webversion, die SQL Server 2005 und SQL Server 2000 unterstützt.
8.10.0010 Die erste Webversion, die SQL Server 2000 und SQL Server 7.0 unterstützt.

Die aktuelle Version von RML Utilities für SQL Server ersetzt alle früheren Versionen. Sie müssen eine frühere Version von RML Utilities für SQL Server deinstallieren, bevor Sie die aktuelle Version installieren. Die aktuelle Version der Tool-Suite enthält wichtige Softwareupdates, verbesserte Features (Prozess-TRC- und .xel-Dateien) sowie Berichte sowie Leistungs- und Skalierbarkeitsverbesserungen.

Abrufen der RML-Dienstprogramme für SQL Server

  • RML Utilities for SQL Server ist zum Download aus dem Microsoft Download Center verfügbar.

  • Nachdem Sie das Assistent für Datenbankexperimente installiert haben, finden Sie die RML-Tools (ReadTrace und OStress) im C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\ Ordner.

Notiz

Microsoft stellt RML-Dienstprogramme für SQL Server wie folgt bereit. Microsoft Customer Support Services (CSS) bietet keine Unterstützung für die Suite. Wenn Sie einen Vorschlag haben oder einen Fehler melden möchten, können Sie die E-Mail-Adresse im Artikel "Probleme und Unterstützung" in der Hilfedatei (RML Help.docx) verwenden. Die Hilfedatei ist in den RML-Hilfsprogrammen für SQL Server enthalten.

Abhängigkeiten für RML-Hilfsprogramme für SQL Server

Wichtig

Die Anwendungen, die als Teil der RML-Toolsuite bereitgestellt werden, erfordern, dass mehrere andere Steuerelemente verfügbar gemacht werden.

Abhängigkeiten für Reporter

Sie müssen sicherstellen, dass die Berichtsanzeige-Steuerelemente entweder im selben Ordner wie Reporter.exe oder im globalen Assemblycache (GAC) verfügbar sind. Die dlLs, die Reporter.exe erfordert, sind:

  • Microsoft.ReportViewer.Common.dll
  • Microsoft.ReportViewer.DataVisualization.dll
  • Microsoft.ReportViewer.ProcessingObjectModel.dll
  • Microsoft.ReportViewer.WinForms.dll
  1. Die neuesten Versionen von RML Utilities enthalten diese DLLs im Anwendungsordner.

  2. Falls nicht verfügbar, können Sie diese DLLs mithilfe des folgenden PowerShell-Skripts herunterladen:

    Register-PackageSource -Name MyNuGet -Location https://www.nuget.org/api/v2 -ProviderName NuGet
    Get-PackageSource
    
    Find-Package Microsoft.ReportViewer.Common -AllVersions
    Install-Package Microsoft.ReportViewer.Common -RequiredVersion 10.0.40219.1
    
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.Common.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.DataVisualization.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.ProcessingObjectModel.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    
    Find-Package Microsoft.ReportViewer.WinForms -AllVersions
    Install-Package Microsoft.ReportViewer.WinForms -RequiredVersion 10.0.40219.1
    
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.WinForms.10.0.40219.1\lib\Microsoft.ReportViewer.WinForms.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    
  3. Sie müssen einen ReporterViewer-Fix herunterladen und installieren, um Links innerhalb der ReadTrace-Berichte ordnungsgemäß zu funktionieren. Um den ReporterViewer-Fix herunterzuladen, wechseln Sie zu Microsoft Visual Studio 2010 Service Pack 1 Report Viewer (KB2549864).

Abhängigkeiten für Expander (optional)

In den meisten Fällen wird Expander, den ReadTrace zum Verarbeiten von CAB/ZIP/RAR-Dateien verwendet, nicht verwendet. Wenn Sie diese Funktionalität jedoch für einen bestimmten komprimierten Dateityp verwenden müssen, stellen Sie sicher, dass die Komprimierungs- und Dekomprimierungssteuerelemente entweder im selben Ordner wie Expander.exe oder im GAC verfügbar sind. Die dlLs, die Expander.exe erforderlich sind, sind wie folgt:

  • BRICOLSOFTZipx64.dll
  • UnRar64.dll
  • XceedZipX64.dll

Sie können diese DLLs aus den jeweiligen Softwarepaketen der Anbieter beziehen:

Abhängigkeiten für ReadTrace und Ostress

ReadTrace und Ostress verwenden die ODBC- und OLEDB-Treiber, die als Teil des SQL Server Native Client ausgeliefert wurden. Ab Version 09.04.0103 ist die RML Utilities-Suite nicht nur von SQL Server Native Client (SNAC) abhängig. Er kann die Microsoft ODBC- oder OLEDB-Treiber auf dem System verwenden, auf dem es installiert ist.

Wenn Sie beabsichtigen, erweiterte Ereignisdateien (*.xel) zu analysieren, stellen Sie sicher, dass Visual C++ 2010 Redistributable auf dem System installiert ist.

Bekannte Probleme und Korrekturen

Problem Lösung
ReadTrace tritt auf einen Fehler "Verbindung mit dem angegebenen Server konnte nicht hergestellt werden. Anfängliches HRESULT: 0x80040154" auf Computern, auf denen SQL Server nicht installiert ist oder nur SQL Server 2022 installiert ist Behoben in Version 09.04.0103. Als Problemumgehung können Sie SQL Server Native Client oder eine andere Version von SQL Server installieren. HRESULT 0x80040154 REGDB_E_CLASSNOTREG Class not registered is a header file winerror.h that means a COM component isn't registered because likely it isn't installed. Dies geschieht, da SQL Server 2022 den SQL Server Native Client nicht ausgeliefert.
ReadTrace trifft auf "ERROR: Ereignislaufzeitüberprüfung: Fehlende Spalte [cached_text] im Ereignis [sp_cache_remove] bei Ereignissequenz 209494 erkannt" Behoben in Version 09.04.0102. Als Problemumgehung können Sie der Befehlszeile ReadTrace Ablaufverfolgungskennzeichnungen (-T28 -T29) hinzufügen.
Reporter trifft auf "Datei oder Assembly 'Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" oder eine ihrer Abhängigkeiten. Fehler bei der Überprüfung des starken Namens (Ausnahme von HRESULT: 0x8013141A)" Behoben in Version 09.04.0102. Als Problemumgehung können Sie den folgenden Registrierungsschlüssel erstellen, um die Überprüfung mit starkem Namen außer Kraft zu setzen: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35
ReadTrace schlägt mit dem Fehler "Es kann keine Verbindung mit dem angegebenen Server hergestellt werden. Ursprüngliches HRESULT: 0x80040154". Ostress schlägt fehl mit dem Fehler "Fehler beim Herstellen der Verbindung. SSL-Sicherheitsfehler.". Anweisungen zum Installieren von SQL Server Native Client.
Die Ausnahme von ReadTrace "Unhandled Exception: System.IO.FileNotFoundException: Datei oder Assembly 'Microsoft.SqlServer.XEvent.Linq.dll' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Das angegebene Modul konnte nicht gefunden werden". Installieren von Visual C++ 2010 Redistributable

Beispiele

Die folgenden Beispiele veranschaulichen die Verwendung einiger RML-Tools.

Verwenden von ReadTrace.exe zum Importieren von Xevent-Daten (Extended Event) in einer Datenbank

Verwenden Sie ReadTrace.exe , um eine Reihe von Xevent-Dateien zu importieren, die mithilfe von Tools wie PSSDIAG/SQLDiag.exe oder SQL LogFinder gesammelt werden. Verwenden Sie den -I Parameter, um auf die erste .xel-Datei zu verweisen, die in der Zeit gesammelt wurde, wenn mehrere Dateien vorhanden sind. Verwenden Sie ReadTrace.exe /?für alle Befehlszeilenoptionen Folgendes:

ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.

Verwenden von Ostress.exe zum Stresstest einer Abfrage

Verwenden Sie OStress, um eine Abfrage an einen Server zu senden, auf dem SQL Server ausgeführt wird, indem Sie 30 gleichzeitige Verbindungen ausführen und die Abfrage 10 Mal für jede Verbindung ausführen. Verwenden Sie Ostress.exe /?für alle Befehlszeilenoptionen Folgendes:

ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10

Verwenden von ReadTrace und Ostress zum Generieren und Wiedergeben von RML-Dateien

So generieren Sie . RML-Dateien verwenden einen Befehl wie die folgende:

ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb   

Weitere Informationen dazu, welche Ereignisse erfasst werden müssen, um eine Wiedergabeablaufverfolgung zu erstellen, finden Sie im RML-Help.docx.

Um eine RML-Datei mithilfe von Ostress wiederzugeben, verwenden Sie einen Befehl wie die folgende:

ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"

Sie können alle RML-Dateien mithilfe von *.RML. Beispiel: -i"D:\RMLReplayTest\RML\*.rml"

Haftungsausschluss für Kontaktinformationen von Drittanbietern

Die Kontaktinformationen zu den in diesem Artikel erwähnten Drittanbietern sollen Ihnen helfen, zusätzliche Informationen zu diesem Thema zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Sie werden von Microsoft ohne jede Gewähr weitergegeben.

Zusätzliche Ressourcen

Problembehandlung und Diagnosetools für lokale SQL Server- und Hybridszenarien