RML-hulpprogramma's (Replay Markup Language) voor SQL Server
In dit artikel wordt een groep hulpprogramma's besproken die worden gebruikt door ondersteuningsprofessionals om problemen met Microsoft SQL Server op te lossen.
Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 944837
Wat zijn RML-hulpprogramma's?
De RML-hulpprogramma's zijn een set diagnostische hulpprogramma's voor het oplossen en helpen van prestatieproblemen in SQL Server. U kunt ze zien als vergelijkbaar met hulpprogramma's die medische technici helpen bij het verwerken van röntgenfoto's, MRI en CT Scanresultaten. RML-hulpprogramma's worden gebruikt voor het verwerken en visualiseren van de diagnostische prestatiegegevens die door gebruikers worden verzameld. Deze hulpprogramma's worden vaak gebruikt door sql Server-ondersteuningstechnici om diagnostische traceringen te verwerken tijdens het oplossen van een prestatieprobleem. RML-hulpprogramma's worden ook vaak gebruikt door databaseontwikkelaars en beheerders om hun SQL Server-queryworkload te analyseren en te verbeteren vanuit hun test- en productieomgevingen. Er zijn drie hulpprogramma's in de suite: ReadTrace, Reporter en Ostress.
-
ReadTrace neemt uitgebreide gebeurtenistraceringen of SQL Trace-traceringen op die een gebruiker maakt om een SQL Server-probleem te diagnosticeren of de prestaties van de werkbelasting te analyseren. ReadTrace importeert de traceringen in tabellen in een SQL Server-database die is opgegeven door de gebruiker. U kunt ReadTrace beschouwen als een transformatieprogramma: het kost binaire
.XEL
bestanden of.TRC
bestanden en importeert ze in tabellen, zodat ze gemakkelijker kunnen worden geanalyseerd via SQL-query's. ReadTrace kan ook Replay Markup Language genereren (. RML)-bestanden die door Ostress kunnen worden gebruikt voor het opnieuw afspelen van werkbelastingen. - Reporter is een hulpprogramma voor rapporten en visualisaties dat verbinding maakt met de gebruikersdatabase die ReadTrace maakt. Reporter voert SQL-query's uit op de database en toont offline SSRS-rapportsamenvattingen van de oorspronkelijke uitgebreide gebeurtenissen of Profiler-traceringen. In een rapport kan bijvoorbeeld worden weergegeven welke query's het langst hebben uitgevoerd in een bepaalde vastgelegde workload, die de meeste CPU heeft gebruikt en welke de meeste leesbewerkingen hebben uitgevoerd.
-
Ostress is een simulatiehulpmiddel voor stresstests .
Ostress.exe maakt gebruik van diagnostische traceringen voor uitgebreide gebeurtenissen of SQL Profiler als invoer. Het kan ook door de gebruiker geleverde query's als invoer accepteren. Ostress herhaalt deze traceringen of query's vervolgens op een SQL Server-exemplaar dat de gebruiker kiest. Het doel is om stress te simuleren. Als u bijvoorbeeld een OStress-query opgeeft zoals
select * from table1
, kunt u deze 100 keer op 50 verbindingen tegelijk uitvoeren om de query uit te voeren. Naast afzonderlijke query's kan Ostress speciale RML-bestanden gebruiken die ReadTrace genereert om de herhaling uit te voeren. - OStress Replay Control Agent (ORCA) helpt Ostress bij het simuleren van een stresstest door een workload van RML-bestanden opnieuw af te spelen. U communiceert niet rechtstreeks met ORCA, maar gebruikt Ostress.
Zie het RML Help-bestand dat is opgenomen in RML-hulpprogramma's voor SQL Server voor een volledige beschrijving van elk hulpprogramma en voorbeeldgebruik.
Hoe zijn RML-hulpprogramma's nuttig?
U kunt RML-hulpprogramma's voor SQL Server gebruiken om de volgende taken uit te voeren:
- Bepaal welke toepassing, database, SQL Server-aanmelding of query de maximale resources gebruikt.
- Bepaal of het uitvoeringsplan voor een batch wordt gewijzigd wanneer u de tracering voor de batch vastlegt. Daarnaast kunt u RML-hulpprogramma's voor SQL Server gebruiken om te bepalen hoe SQL Server deze plannen uitvoert.
- Bepaal welke query's langzaam worden uitgevoerd.
Nadat u een tracering hebt vastgelegd voor een exemplaar van SQL Server, kunt u RML-hulpprogramma's voor SQL Server gebruiken om het traceringsbestand opnieuw af te spelen op een ander exemplaar van SQL Server. Als u de tracering ook vastlegt tijdens het opnieuw afspelen, kunt u RML-hulpprogramma's voor SQL Server gebruiken om het nieuwe traceringsbestand te vergelijken met het oorspronkelijke traceringsbestand. U kunt deze techniek gebruiken om te testen hoe SQL Server zich gedraagt nadat u wijzigingen hebt toegepast. U kunt deze techniek bijvoorbeeld gebruiken om te testen hoe SQL Server zich gedraagt nadat u de volgende taken hebt uitgevoerd:
- Installeer een SQL Server-servicepack.
- Installeer een cumulatieve SQL Server-update.
- Werk een opgeslagen procedure of een functie bij.
- Een index bijwerken of maken.
Voordelen van RML-hulpprogramma's voor SQL Server
RML-hulpprogramma's voor SQL Server is handig als u het testen van toepassingen wilt simuleren wanneer het niet praktisch of onmogelijk is om te testen met behulp van de echte toepassing. In een testomgeving kan het lastig zijn om dezelfde gebruikersbelasting te genereren die aanwezig is in de productieomgeving. U kunt RML-hulpprogramma's voor SQL Server gebruiken om een productieworkload opnieuw af te spelen in een testomgeving en het prestatie-effect van eventuele wijzigingen te beoordelen. U kunt bijvoorbeeld een upgrade testen naar SQL Server 2008 of de toepassing van een SQL Server-servicepack. Daarnaast kunt u RML-hulpprogramma's voor SQL Server gebruiken om verschillende herhalingsworkloads te analyseren en te vergelijken. Het handmatig uitvoeren van dit type regressieanalyse is moeilijk.
Het Help-bestand bevat een snelstartonderwerp. Dit onderwerp bevat een korte oefening waarmee u vertrouwd bent met elk RML-hulpprogramma. Als u het Help-bestand wilt openen, selecteert u >Alle programma's RML-hulpprogramma's>starten voor SQL Server>Help RML Help.>
Locatie- en versiegeschiedenis downloaden
U kunt de versiegeschiedenis van RML-hulpprogramma's in deze tabel bekijken en de hulpprogramma's hier downloaden.
Versienummer | Omschrijving |
---|---|
09.04.0103 | Geeft de huidige webrelease aan die beschikbaar is via het Microsoft Downloadcentrum. Het ondersteunt alle uitgebrachte versies van SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 en SQL Server 2008). |
09.04.0102 | Geeft de vorige webrelease aan die beschikbaar is via het Microsoft Downloadcentrum. Het ondersteunt alle uitgebrachte versies van SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 en SQL Server 2008). |
9.04.0100 | Geeft een eerdere webrelease aan die beschikbaar is via het Microsoft Downloadcentrum. Het ondersteunt alle uitgebrachte versies van 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 en SQL Server 2000). |
9.04.0098 | Geeft een eerder webreleasepakket aan dat is opgenomen in het hulpprogramma Database Experimentation Assistant. Het ondersteunt alle uitgebrachte versies van SQL Server. |
9.04.0097 | Een eerdere release die beschikbaar is op de SQL Nexus-site die ondersteuning biedt voor alle uitgebrachte versies van SQL Server. |
9.04.0051 | Een vorige webrelease die beschikbaar is in het Microsoft Downloadcentrum dat ONDERSTEUNING biedt voor SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 en SQL Server 2000. |
9.04.0004 | Een eerdere webrelease die ondersteuning biedt voor SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 en SQL Server 2000. |
9.01.0109 | Een vorige webrelease die ondersteuning biedt voor SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 en SQL Server 2000. |
9.00.0023 | Een eerdere webrelease die ondersteuning biedt voor SQL Server 2005 en SQL Server 2000. |
8.10.0010 | De eerste webrelease die ondersteuning biedt voor SQL Server 2000 en SQL Server 7.0. |
De huidige versie van RML-hulpprogramma's voor SQL Server vervangt eerdere versies. U moet een eerdere versie van RML-hulpprogramma's voor SQL Server verwijderen voordat u de huidige versie installeert. De huidige versie van het hulpprogrammapakket bevat belangrijke software-updates, verbeterde functies (proces.trc- en .xel-bestanden) en rapporten en prestatie- en schaalbaarheidsverbeteringen.
De RML-hulpprogramma's voor SQL Server verkrijgen
RML-hulpprogramma's voor SQL Server kunnen worden gedownload vanuit het Microsoft Downloadcentrum.
Nadat u de Database Experimentation Assistant hebt geïnstalleerd, vindt u de RML-hulpprogramma's (
ReadTrace
enOStress
) in deC:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\
map.
Notitie
Microsoft biedt RML-hulpprogramma's voor SQL Server zoals dat is. Microsoft Customer Support Services (CSS) biedt geen ondersteuning voor de suite. Als u een suggestie hebt of een bug wilt melden, kunt u het e-mailadres gebruiken in het artikel Problemen en hulp in het Help-bestand (RML Help.docx). Het Help-bestand is opgenomen in de RML-hulpprogramma's voor SQL Server.
Afhankelijkheden voor RML-hulpprogramma's voor SQL Server
Belangrijk
De toepassingen die worden geleverd als onderdeel van de RML-hulpprogrammasuite, vereisen dat er verschillende andere besturingselementen beschikbaar worden gesteld.
Afhankelijkheden voor reporter
U moet ervoor zorgen dat de besturingselementen van de rapportviewer beschikbaar zijn in dezelfde map als Reporter.exe of in de Global Assembly Cache (GAC). De DLL's die Reporter.exe vereist, zijn:
- Microsoft.ReportViewer.Common.dll
- Microsoft.ReportViewer.DataVisualization.dll
- Microsoft.ReportViewer.ProcessingObjectModel.dll
- Microsoft.ReportViewer.WinForms.dll
De nieuwste versies van RML Utilities bevatten deze DLL's in de toepassingsmap.
Als dit niet beschikbaar is, kunt u deze DLL's downloaden met behulp van het volgende PowerShell-script:
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"
U moet een Fix voor ReporterViewer downloaden en installeren om koppelingen in de ReadTrace-rapporten goed te laten werken. Als u de oplossing ReporterViewer wilt downloaden, gaat u naar Microsoft Visual Studio 2010 Service Pack 1 Report Viewer (KB2549864).
Afhankelijkheden voor Expander (optioneel)
In de meeste gevallen wordt Expander, die ReadTrace gebruikt voor het verwerken van CAB-/ZIP/RAR-bestanden, niet gebruikt. Als u deze functionaliteit echter moet gebruiken voor een bepaald gecomprimeerd bestandstype, moet u ervoor zorgen dat de besturingselementen voor compressie en decompressie beschikbaar zijn in dezelfde map als Expander.exe of in de GAC. De DLL's die Expander.exe vereist, zijn als volgt:
- BRICOLSOFTZipx64.dll
- UnRar64.dll
- XceedZipX64.dll
U kunt deze DLL's verkrijgen via de respectieve softwarepakketten van de leveranciers:
https://www.rarlab.com/rar_add.htm - zoek de UnRAR.dll dynamische bibliotheek voor Windows-softwareontwikkelaars
Afhankelijkheden voor ReadTrace en Ostress
ReadTrace en Ostress maken gebruik van de ODBC- en OLEDB-stuurprogramma's die zijn verzonden als onderdeel van de systeemeigen SQL Server-client. Vanaf versie 09.04.0103 is de RML Utilities-suite niet alleen afhankelijk van SNAC (SQL Server Native Client). Het kan gebruikmaken van de Microsoft ODBC- of OLEDB-stuurprogramma's op het systeem waarop het is geïnstalleerd.
Als u van plan bent om uitgebreide gebeurtenisbestanden (*.xel) te analyseren, moet u ervoor zorgen dat Visual C++ 2010 Redistributable is geïnstalleerd op het systeem.
Bekende problemen en oplossingen
Verzenden | Oplossing |
---|---|
ReadTrace krijgt de foutmelding 'Kan geen verbinding maken met de opgegeven server. Eerste HRESULT: 0x80040154" op machines waarop SQL Server niet is geïnstalleerd of alleen SQL Server 2022 is geïnstalleerd | Opgelost in versie 09.04.0103. Als tijdelijke oplossing kunt u SQL Server Native Client of een andere versie van SQL Server installeren. HRESULT 0x80040154 REGDB_E_CLASSNOTREG Klasse niet geregistreerd is een headerbestand winerror.h dat betekent dat een COM-onderdeel niet is geregistreerd, omdat het waarschijnlijk niet is geïnstalleerd. Dit gebeurt omdat SQL Server 2022 de systeemeigen SQL Server-client niet verzendt. |
ReadTrace krijgt te maken met "ERROR: Event Runtime check: Detected missing column [cached_text] in event [sp_cache_remove] at event sequence 209494" | Opgelost in versie 09.04.0102. Als tijdelijke oplossing kunt u traceringsvlagmen (-T28 -T29 ) toevoegen aan de ReadTrace-opdrachtregel. |
De rapporter krijgt te maken met 'Kan bestand of assembly 'Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' of een van de bijbehorende afhankelijkheden niet laden. Validatie van sterke naam is mislukt. (Uitzondering van HRESULT: 0x8013141A)" | Opgelost in versie 09.04.0102. Als tijdelijke oplossing kunt u de volgende registersleutel maken om de verificatie van sterke namen te overschrijven: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35 . |
ReadTrace mislukt met de fout 'Kan geen verbinding maken met de opgegeven server. Eerste HRESULT: 0x80040154". Ostress mislukt met de fout 'Poging om verbinding tot stand te brengen is mislukt. SSL-beveiligingsfout.' | Zie de instructies voor het installeren van sql Server Native Client. |
U ziet de uitzondering van ReadTrace 'Unhandled Exception: System.IO.FileNotFoundException: Kan bestand of assembly 'Microsoft.SqlServer.XEvent.Linq.dll' of een van de afhankelijkheden niet laden. Kan de opgegeven module niet vinden.' | Visual C++ 2010 Redistributable installeren |
Voorbeelden
In de volgende voorbeelden ziet u hoe u enkele van de RML-hulpprogramma's gebruikt.
Uitgebreide gebeurtenisgegevens (Xevent) importeren met ReadTrace.exe in een database
Gebruik ReadTrace.exe om een reeks Xevent-bestanden te importeren die worden verzameld met behulp van hulpprogramma's zoals PSSDIAG/SQLDiag.exe of SQL LogScout. Gebruik de -I
parameter om te verwijzen naar het eerste XEL-bestand dat op tijd is verzameld, als er meerdere bestanden aanwezig zijn. Gebruik voor alle opdrachtregelopties ReadTrace.exe /?
:
ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.
Een query testen met behulp van Ostress.exe
Gebruik OStress om een query te verzenden op een server waarop SQL Server wordt uitgevoerd door 30 gelijktijdige verbindingen uit te voeren en de query 10 keer op elke verbinding uit te voeren. Gebruik voor alle opdrachtregelopties Ostress.exe /?
:
ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10
ReadTrace en Ostress gebruiken om RML-bestanden te genereren en opnieuw af te spelen
Genereren. RML-bestanden gebruiken een opdracht zoals de volgende:
ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb
Zie de RML-Help.docx voor meer informatie over welke gebeurtenissen moeten worden vastgelegd om een tracering voor opnieuw afspelen te maken.
Als u een RML-bestand opnieuw wilt afspelen met Ostress, gebruikt u een opdracht zoals de volgende:
ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"
U kunt alle RML-bestanden opnieuw afspelen met behulp van *.RML
. Voorbeeld: -i"D:\RMLReplayTest\RML\*.rml"
.
Disclaimerinformatie van derden
Microsoft biedt contactgegevens van derden om u te helpen aanvullende informatie over dit onderwerp te vinden. Deze contactinformatie kan zonder voorafgaande kennisgeving worden gewijzigd. Microsoft garandeert niet de nauwkeurigheid van contactgegevens van derden.