RML-verktyg (Replay Markup Language) för SQL Server
I den här artikeln beskrivs en grupp verktyg som används av supportpersonal för att felsöka Microsoft SQL Server.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 944837
Vad är RML-verktyg?
RML-verktygen är en uppsättning diagnostikverktyg för felsökning och hjälp med prestandaproblem i SQL Server. Du kan se dem som liknande verktyg som hjälper medicinska tekniker att bearbeta röntgen-, MRI- och CT Scan-resultat. RML-verktyg används för att bearbeta och visualisera prestandadiagnostikdata som samlas in av användare. Dessa verktyg används ofta av SQL Server-supporttekniker för att bearbeta diagnostikspårningar vid felsökning av ett prestandaproblem. Dessutom används RML-verktyg ofta av databasutvecklare och administratörer för att analysera och förbättra sin SQL Server-frågearbetsbelastning från sina test- och produktionsmiljöer. Det finns tre verktyg i sviten: ReadTrace, Reporter och Ostress.
-
ReadTrace tar in utökade händelsespårningar eller SQL Trace-spårningar som en användare skapar för att diagnostisera ett SQL Server-problem eller analysera arbetsbelastningsprestanda. ReadTrace importerar spårningarna till tabeller i en SQL Server-databas som angetts av användaren. Tänk på ReadTrace som ett transformeringsverktyg: det tar binära
.XEL
filer eller.TRC
filer och importerar dem till tabeller så att de enklare kan analyseras via SQL-frågor. ReadTrace kan också generera Replay Markup Language (. RML)-filer som kan användas av Ostress för arbetsbelastningsrepris. - Reporter är ett rapport- och visualiseringsverktyg som ansluter till den användardatabas som ReadTrace skapar. Reporter kör SQL-frågor mot databasen och visar offline-SSRS-rapportsammanfattningar av de ursprungliga Extended Events- eller Profiler-spårningarna. En rapport kan till exempel visa vilka frågor som kördes längst i en viss insamlad arbetsbelastning, som använde mest CPU och som utförde flest läsningar.
-
Ostress är ett simuleringsverktyg för stresstestning.
Ostress.exe använder diagnostikspårningar för utökad händelse eller SQL Profiler som indata. Den kan också acceptera användartilldefinerade frågor som indata. Ostress spelar sedan upp dessa spårningar eller frågor mot en SQL Server-instans som användaren väljer. Målet är att simulera stress. Om du till exempel ger OStress en fråga som
select * from table1
kan du instruera den att köra frågan 100 gånger på 50 anslutningar samtidigt. Förutom enskilda frågor kan Ostress använda särskilda RML-filer som ReadTrace genererar för att utföra reprisen. - OStress Replay Control Agent (ORCA) hjälper Ostress att simulera ett stresstest genom att spela upp en arbetsbelastning från RML-filer. Du interagerar inte direkt med ORCA, utan använder Ostress.
En fullständig beskrivning av varje verktyg och exempelanvändning finns i RML-hjälpfilen som ingår i RML-verktyg för SQL Server.
Hur är RML-verktyg användbara?
Du kan använda RML-verktyg för SQL Server för att utföra följande uppgifter:
- Ta reda på vilket program, databas, SQL Server-inloggning eller fråga som använder maximalt antal resurser.
- Avgör om körningsplanen för en batch ändras när du registrerar spårningen för batchen. Dessutom kan du använda RML-verktyg för SQL Server för att avgöra hur SQL Server kör dessa planer.
- Ta reda på vilka frågor som körs långsamt.
När du har avbildat en spårning för en instans av SQL Server kan du använda RML-verktyg för SQL Server för att spela upp spårningsfilen mot en annan instans av SQL Server. Om du också avbildar spårningen under reprisen kan du använda RML Utilities för SQL Server för att jämföra den nya spårningsfilen med den ursprungliga spårningsfilen. Du kan använda den här tekniken för att testa hur SQL Server beter sig när du har tillämpat ändringarna. Du kan till exempel använda den här tekniken för att testa hur SQL Server beter sig när du har utför följande uppgifter:
- Installera ett SQL Server Service Pack.
- Installera en kumulativ uppdatering för SQL Server.
- Uppdatera en lagrad procedur eller en funktion.
- Uppdatera eller skapa ett index.
Fördelar med RML-verktyg för SQL Server
RML-verktyg för SQL Server är användbara om du vill simulera programtestning när det är opraktiskt eller omöjligt att testa med hjälp av det verkliga programmet. I en testmiljö kan det vara svårt att generera samma användarbelastning som finns i produktionsmiljön. Du kan använda RML-verktyg för SQL Server för att spela upp en produktionsarbetsbelastning i en testmiljö och utvärdera prestandaeffekten av eventuella ändringar. Du kan till exempel testa en uppgradering till SQL Server 2008 eller tillämpningen av ett SQL Server Service Pack. Dessutom kan du använda RML-verktyg för SQL Server för att analysera och jämföra olika omspelningsarbetsbelastningar. Det är svårt att utföra den här typen av regressionsanalys manuellt.
Hjälpfilen innehåller ett snabbstartsavsnitt. Det här avsnittet innehåller en kort övning som bekantar dig med varje RML-verktyg. Om du vill öppna hjälpfilen väljer du Starta>alla program>RML-verktyg för HJÄLP-RML-hjälp för SQL Server.>>
Ladda ned plats- och versionshistorik
Du kan granska versionshistoriken för RML-verktyg i den här tabellen och ladda ned verktygen härifrån.
Versionsnummer | Beskrivning |
---|---|
09.04.0103 | Anger den aktuella webbversionen som är tillgänglig från Microsoft Download Center. Den stöder alla versioner av SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 och SQL Server 2008). |
09.04.0102 | Anger den tidigare webbversionen som är tillgänglig från Microsoft Download Center. Den stöder alla versioner av SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 och SQL Server 2008). |
9.04.0100 | Anger en tidigare webbversion som är tillgänglig från Microsoft Download Center. Den stöder alla versioner av 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 och SQL Server 2000). |
9.04.0098 | Anger ett tidigare webbversionspaket som ingår i verktyget Database Experimentation Assistant. Den stöder alla versioner av SQL Server. |
9.04.0097 | En tidigare version som är tillgänglig från SQL Nexus-webbplatsen som stöder alla versioner av SQL Server. |
9.04.0051 | En tidigare webbversion som är tillgänglig från Microsoft Download Center som stöder SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 och SQL Server 2000. |
9.04.0004 | En tidigare webbversion som stöder SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 och SQL Server 2000. |
9.01.0109 | En tidigare webbversion som stöder SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 och SQL Server 2000. |
9.00.0023 | En tidigare webbversion som har stöd för SQL Server 2005 och SQL Server 2000. |
8.10.0010 | Den första webbversionen som stöder SQL Server 2000 och SQL Server 7.0. |
Den aktuella versionen av RML Utilities för SQL Server ersätter alla tidigare versioner. Du måste avinstallera en tidigare version av RML-verktyg för SQL Server innan du installerar den aktuella versionen. Den aktuella versionen av verktygspaketet innehåller viktiga programuppdateringar, förbättrade funktioner (bearbeta .trc - och .xel-filer ) och rapporter samt prestanda- och skalbarhetsförbättringar.
Hämta RML-verktygen för SQL Server
RML-verktyg för SQL Server är tillgängliga för nedladdning från Microsoft Download Center.
När du har installerat Database Experimentation Assistant hittar du RML-verktygen
C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\
(ReadTrace
ochOStress
) i mappen .
Kommentar
Microsoft tillhandahåller RML-verktyg för SQL Server som det är. Microsoft Customer Support Services (CSS) tillhandahåller inte support för sviten. Om du har ett förslag eller om du vill rapportera ett fel kan du använda e-postadressen i artikeln "Problem och hjälp" i hjälpfilen (RML Help.docx). Hjälpfilen ingår i RML-verktygen för SQL Server.
Beroenden för RML-verktyg för SQL Server
Viktigt!
De program som tillhandahålls som en del av RML-verktygspaketet kräver att flera andra kontroller görs tillgängliga.
Beroenden för reporter
Du måste se till att kontrollerna i Rapportgranskaren är tillgängliga antingen i samma mapp som Reporter.exe eller i Den globala sammansättningscachen (GAC). De DLL:er som Reporter.exe kräver är:
- Microsoft.ReportViewer.Common.dll
- Microsoft.ReportViewer.DataVisualization.dll
- Microsoft.ReportViewer.ProcessingObjectModel.dll
- Microsoft.ReportViewer.WinForms.dll
De senaste versionerna av RML Utilities innehåller dessa DLL:er i programmappen.
Om det inte är tillgängligt kan du ladda ned dessa DLL:er med hjälp av följande PowerShell-skript:
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"
Du måste ladda ned och installera en ReporterViewer-korrigering för att länkarna i ReadTrace-rapporterna ska fungera korrekt. Om du vill ladda ned ReporterViewer-korrigeringen går du till Microsoft Visual Studio 2010 Service Pack 1 Report Viewer (KB2549864).
Beroenden för Expander (valfritt)
I de flesta fall används inte Expander, som ReadTrace använder för att bearbeta CAB/ZIP/RAR-filer. Men om du behöver använda den här funktionen för en viss komprimerad filtyp kontrollerar du att kontrollerna för komprimering och dekomprimering är tillgängliga antingen i samma mapp som Expander.exe eller i GAC. De DLL:er som Expander.exe kräver är följande:
- BRICOLSOFTZipx64.dll
- UnRar64.dll
- XceedZipX64.dll
Du kan hämta dessa DLL:er från respektive programvarupaket för leverantörerna:
https://www.rarlab.com/rar_add.htm – hitta det UnRAR.dll dynamiska biblioteket för Windows-programvaruutvecklare
Beroenden för ReadTrace och Ostress
ReadTrace och Ostress använder ODBC- och OLEDB-drivrutinerna som levereras som en del av den interna SQL Server-klienten. Från och med version 09.04.0103 är RML Utilities-sviten inte bara beroende av SQL Server Native-klienten (SNAC). Den kan använda Microsoft ODBC- eller OLEDB-drivrutinerna i systemet där den är installerad.
Om du planerar att analysera utökade händelsefiler (*.xel) kontrollerar du att Visual C++ 2010 Redistributable är installerat på systemet.
Kända problem och korrigeringar
Problem | Åtgärd |
---|---|
ReadTrace får felet "Det går inte att ansluta till den angivna servern. Initial HRESULT: 0x80040154" på datorer där SQL Server inte är installerat eller bara SQL Server 2022 är installerat | Åtgärdat i version 09.04.0103. Som en lösning kan du installera SQL Server Native Client eller en annan version av SQL Server. HRESULT 0x80040154 REGDB_E_CLASSNOTREG klass som inte är registrerad är en winerror.h-huvudfil som innebär att en COM-komponent inte är registrerad eftersom den troligen inte är installerad. Det beror på att SQL Server 2022 inte skickar den interna SQL Server-klienten. |
ReadTrace påträffar "ERROR: Event runtime check: Detected missing column [cached_text] in event [sp_cache_remove] at event sequence 209494" | Åtgärdat i version 09.04.0102. Som en lösning kan du lägga till spårningsflaggor (-T28 -T29 ) på ReadTrace-kommandoraden. |
Reporter stöter på "Det gick inte att läsa in filen eller sammansättningen 'Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' eller något av dess beroenden. Verifieringen av starka namn misslyckades. (Undantag från HRESULT: 0x8013141A)" | Åtgärdat i version 09.04.0102. Som en lösning kan du skapa följande registernyckel för att åsidosätta verifieringen av starka namn: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35 . |
ReadTrace misslyckas med felet "Det går inte att ansluta till den angivna servern. Inledande HRESULT: 0x80040154". Ostress misslyckas med felet "Det gick inte att upprätta anslutningen. SSL-säkerhetsfel.". | Se anvisningar för att installera den interna SQL Server-klienten. |
Du stöter på undantaget från ReadTrace "Unhandled Exception: System.IO.FileNotFoundException: Det gick inte att läsa in filen eller sammansättningen "Microsoft.SqlServer.XEvent.Linq.dll" eller något av dess beroenden. Det gick inte att hitta den angivna modulen". | Installera Visual C++ 2010 Redistributable |
Exempel
Följande exempel visar hur du använder några av RML-verktygen.
Använda ReadTrace.exe för att importera Xevent-data (Extended Event) i en databas
Använd ReadTrace.exe för att importera en serie Xevent-filer som samlas in med hjälp av verktyg som PSSDIAG/SQLDiag.exe eller SQL LogScout. Använd parametern -I
för att peka på den första .xel-filen som samlades in i tid, om flera filer finns. För alla kommandoradsväxlar använder du ReadTrace.exe /?
:
ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.
Använda Ostress.exe för att stresstesta en fråga
Använd OStress för att skicka en fråga mot en server som kör SQL Server genom att köra 30 samtidiga anslutningar och köra frågan 10 gånger på varje anslutning. För alla kommandoradsväxlar använder du Ostress.exe /?
:
ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10
Använda ReadTrace och Ostress för att generera och spela upp RML-filer
Generera . RML-filer, använd ett kommando som liknar följande:
ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb
Mer information om vilka händelser som behöver registreras för att skapa en reprisspårning finns i RML-Help.docx.
Om du vill spela upp en RML-fil med ostress använder du ett kommando som liknar följande:
ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"
Du kan spela upp alla RML-filer med hjälp *.RML
av . Exempel: -i"D:\RMLReplayTest\RML\*.rml"
.
Ansvarsfriskrivning för tredje part
Microsoft tillhandahåller kontaktinformation från tredje part som hjälper dig att hitta ytterligare information om det här ämnet. Denna kontaktinformation kan ändras utan föregående meddelande. Microsoft garanterar inte att kontaktinformation från tredje part är korrekt.
Ytterligare resurser
Felsöknings- och diagnostikverktyg för lokala SQL Server- och hybridscenarier