Narzędzia replay Markup Language (RML) dla programu SQL Server
W tym artykule omówiono grupę narzędzi używanych przez specjalistów pomocy technicznej do rozwiązywania problemów z programem Microsoft SQL Server.
Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 944837
Co to są narzędzia RML?
Narzędzia RML to zestaw narzędzi diagnostycznych do rozwiązywania problemów z wydajnością i pomocy w programie SQL Server. Można je traktować jako podobne do narzędzi, które pomagają technikom medycznym przetwarzać wyniki rentgenowskie, MRI i CT Scan. Narzędzia RML służą do przetwarzania i wizualizowania danych diagnostycznych wydajności zebranych przez użytkowników. Te narzędzia są często używane przez inżynierów pomocy technicznej programu SQL Server do przetwarzania śladów diagnostycznych podczas rozwiązywania problemów z wydajnością. Ponadto narzędzia RML są często używane przez deweloperów baz danych i administratorów do analizowania i ulepszania obciążenia zapytań programu SQL Server z poziomu środowisk testowych i produkcyjnych. W pakiecie znajdują się trzy narzędzia: ReadTrace, Reporter i Ostress.
-
Funkcja ReadTrace pobiera rozszerzone ślady zdarzeń lub ślady śledzenia SQL tworzone przez użytkownika w celu zdiagnozowania problemu z programem SQL Server lub analizowania wydajności obciążenia. Funkcja ReadTrace importuje ślady do tabel w bazie danych programu SQL Server określonej przez użytkownika. Pomyśl o funkcji ReadTrace jako narzędziu do przekształcania: pobiera pliki binarne
.XEL
lub.TRC
pliki i importuje je do tabel, dzięki czemu można je łatwiej analizować za pomocą zapytań SQL. Funkcja ReadTrace może również generować język znaczników ponownego odtwarzania (. Pliki RML), które mogą być używane przez narzędzia Ostress do odtwarzania obciążenia. - Reporter to narzędzie do raportowania i wizualizacji, które łączy się z bazą danych użytkownika, którą tworzy ReadTrace. Reporter uruchamia zapytania SQL względem bazy danych i pokazuje podsumowania raportów usług SSRS w trybie offline oryginalnych zdarzeń rozszerzonych lub śladów profilera. Na przykład raport może pokazywać, które zapytania były uruchamiane najdłużej w określonym przechwyconym obciążeniu, które używało największej ilości procesora CPU i które wykonywały najwięcej operacji odczytu.
-
Ostress to narzędzie do symulacji stress-testing.
Ostress.exe używa śledzenia diagnostycznego rozszerzonego zdarzenia lub programu SQL Profiler jako danych wejściowych. Może również akceptować zapytania dostarczane przez użytkownika jako dane wejściowe. Narzędzie Ostress następnie odtwarza te ślady lub zapytania względem wystąpienia programu SQL Server wybranego przez użytkownika. Celem jest symulowanie stresu. Jeśli na przykład podasz zapytanie OStress, takie jak
select * from table1
, możesz poinstruować je, aby uruchamiało zapytanie 100 razy na 50 połączeniach jednocześnie. Oprócz poszczególnych zapytań ostress może używać specjalnych plików RML generowanych przez funkcję ReadTrace w celu wykonania odtwarzania. - OStress Replay Control Agent (ORCA) pomaga Ostress w symulowaniu testu przeciążenia przez ponowne odtworzenie obciążenia z plików RML. Nie korzystasz bezpośrednio z usługi ORCA, ale używasz narzędzia Ostress.
Pełny opis każdego narzędzia i przykładowego użycia można znaleźć w pliku Pomocy języka RML, który znajduje się w narzędziach języka RML dla programu SQL Server.
W jaki sposób są przydatne narzędzia RML?
Aby wykonać następujące zadania, można użyć narzędzi RML dla programu SQL Server:
- Określ, która aplikacja, baza danych, identyfikator logowania lub zapytanie programu SQL Server korzystają z maksymalnych zasobów.
- Ustal, czy plan wykonania partii został zmieniony podczas przechwytywania śladu dla partii. Ponadto można użyć narzędzi RML dla programu SQL Server, aby określić sposób uruchamiania tych planów przez program SQL Server.
- Ustal, które zapytania działają powoli.
Po przechwyceniu śladu dla wystąpienia programu SQL Server można użyć narzędzi RML dla programu SQL Server, aby odtworzyć plik śledzenia w innym wystąpieniu programu SQL Server. Jeśli przechwycisz również ślad podczas odtwarzania, możesz użyć narzędzi RML dla programu SQL Server, aby porównać nowy plik śledzenia z oryginalnym plikiem śledzenia. Ta technika służy do testowania zachowania programu SQL Server po zastosowaniu zmian. Możesz na przykład użyć tej techniki, aby przetestować zachowanie programu SQL Server po wykonaniu następujących zadań:
- Zainstaluj dodatek Service Pack programu SQL Server.
- Zainstaluj aktualizację zbiorczą programu SQL Server.
- Aktualizowanie procedury składowanej lub funkcji.
- Zaktualizuj lub utwórz indeks.
Zalety narzędzi RML dla programu SQL Server
Narzędzia RML dla programu SQL Server są przydatne, jeśli chcesz symulować testowanie aplikacji, gdy jest niepraktyczne lub niemożliwe do przetestowania przy użyciu rzeczywistej aplikacji. W środowisku testowym może być trudno wygenerować to samo obciążenie użytkownika, które istnieje w środowisku produkcyjnym. Możesz użyć narzędzi RML dla programu SQL Server, aby odtworzyć obciążenie produkcyjne w środowisku testowym i ocenić wpływ na wydajność wszelkich zmian. Można na przykład przetestować uaktualnienie do programu SQL Server 2008 lub aplikację dodatku Service Pack programu SQL Server. Ponadto można użyć narzędzi RML dla programu SQL Server do analizowania i porównywania różnych obciążeń odtwarzania. Ręczne przeprowadzanie tej analizy regresji jest trudne.
Plik Pomocy zawiera temat Szybki start. Ten temat zawiera krótkie ćwiczenie, które zapoznaje się z każdym narzędziem języka RML. Aby otworzyć plik Pomocy, wybierz pozycję Uruchom>wszystkie programy>RML Utilities for SQL Server Help RML Help (Pomoc> języka RML programu SQL Server).>
Lokalizacja pobierania i historia wersji
Możesz sprawdzić historię wersji narzędzi RML w tej tabeli i pobrać narzędzia tutaj.
Numer wersji | Opis |
---|---|
09.04.0103 | Wskazuje bieżącą wersję internetową dostępną w Centrum pobierania Microsoft. Obsługuje wszystkie wydane wersje programu SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 i SQL Server 2008). |
09.04.0102 | Wskazuje poprzednią wersję internetową dostępną w Centrum pobierania Microsoft. Obsługuje wszystkie wydane wersje programu SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 i SQL Server 2008). |
9.04.0100 | Wskazuje poprzednią wersję internetową dostępną w Centrum pobierania Microsoft. Obsługuje wszystkie wydane wersje programu 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 i SQL Server 2000). |
9.04.0098 | Wskazuje poprzedni pakiet wersji internetowej dołączony do narzędzia Asystent eksperymentowania z bazą danych. Obsługuje wszystkie wydane wersje programu SQL Server. |
9.04.0097 | Poprzednia wersja dostępna w witrynie PROGRAMU SQL Nexus, która obsługuje wszystkie wydane wersje programu SQL Server. |
9.04.0051 | Poprzednia wersja internetowa dostępna w Centrum pobierania Microsoft, które obsługuje programy SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 i SQL Server 2000. |
9.04.0004 | Poprzednia wersja internetowa, która obsługuje programy SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 i SQL Server 2000. |
9.01.0109 | Poprzednia wersja internetowa, która obsługuje programy SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 i SQL Server 2000. |
9.00.0023 | Poprzednia wersja internetowa, która obsługuje programy SQL Server 2005 i SQL Server 2000. |
8.10.0010 | Początkowa wersja internetowa, która obsługuje programy SQL Server 2000 i SQL Server 7.0. |
Bieżąca wersja narzędzi RML dla programu SQL Server zastępuje wszystkie wcześniejsze wersje. Przed zainstalowaniem bieżącej wersji należy odinstalować wszystkie starsze wersje programów narzędziowych RML dla programu SQL Server. Bieżąca wersja pakietu narzędzi zawiera ważne aktualizacje oprogramowania, ulepszone funkcje (proces plików trc i xel ) oraz raporty oraz ulepszenia wydajności i skalowalności.
Uzyskiwanie narzędzi RML dla programu SQL Server
Narzędzia RML dla programu SQL Server są dostępne do pobrania z Centrum pobierania Microsoft.
Po zainstalowaniu Asystent eksperymentowania z bazą danych w folderze
C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\
znajdują się narzędzia języka RML (ReadTrace
iOStress
).
Uwaga 16.
Firma Microsoft udostępnia narzędzia RML dla programu SQL Server, tak jak to jest. Usługi obsługi klienta firmy Microsoft (CSS) nie zapewniają obsługi pakietu. Jeśli masz sugestię lub chcesz zgłosić usterkę, możesz użyć adresu e-mail w artykule "Problemy i pomoc" w pliku Pomocy (RML Help.docx). Plik Pomocy jest dołączony do narzędzi RML dla programu SQL Server.
Zależności dla narzędzi RML dla programu SQL Server
Ważne
Aplikacje udostępniane w ramach pakietu narzędzi RML wymagają udostępnienia kilku innych kontrolek.
Zależności dla reportera
Należy upewnić się, że kontrolki Podgląd raportów są dostępne w tym samym folderze co Reporter.exe lub w globalnej pamięci podręcznej zestawów (GAC). Biblioteki DLL, które Reporter.exe wymagają:
- Microsoft.ReportViewer.Common.dll
- Microsoft.ReportViewer.DataVisualization.dll
- Microsoft.ReportViewer.ProcessingObjectModel.dll
- Microsoft.ReportViewer.WinForms.dll
Najnowsze wersje narzędzi RML obejmują te biblioteki DLL w folderze aplikacji.
Jeśli nie są dostępne, możesz pobrać te biblioteki DLL przy użyciu następującego skryptu programu PowerShell:
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"
Należy pobrać i zainstalować poprawkę programu ReporterViewer, aby umożliwić prawidłowe działanie linków w raportach ReadTrace. Aby pobrać poprawkę programu ReporterViewer, przejdź do programu Microsoft Visual Studio 2010 Service Pack 1 Report Viewer (KB2549864).
Zależności dla ekspandera (opcjonalnie)
W większości przypadków funkcja Expander, której funkcja ReadTrace używa do przetwarzania plików CAB/ZIP/RAR, nie jest używana. Jeśli jednak chcesz użyć tej funkcji dla określonego skompresowanego typu pliku, upewnij się, że kontrolki kompresji i dekompresji są dostępne w tym samym folderze co Expander.exe lub w GAC. Biblioteki DLL, które Expander.exe wymagają, są następujące:
- BRICOLSOFTZipx64.dll
- UnRar64.dll
- XceedZipX64.dll
Te biblioteki DLL można uzyskać z odpowiednich pakietów oprogramowania dostawców:
https://www.rarlab.com/rar_add.htm — znajdź bibliotekę dynamiczną UnRAR.dll dla deweloperów oprogramowania systemu Windows
Zależności dla funkcji ReadTrace i Ostress
Narzędzie ReadTrace i Ostress używają sterowników ODBC i OLEDB dostarczanych jako część klienta natywnego programu SQL Server. Począwszy od wersji 09.04.0103, pakiet narzędzi RML nie jest zależny tylko od klienta natywnego programu SQL Server (SNAC). Może używać sterowników Microsoft ODBC lub OLEDB w systemie, w którym jest zainstalowany.
Jeśli planujesz przeanalizować pliki zdarzeń rozszerzonych (*.xel), upewnij się, że pakiet redystrybucyjny Visual C++ 2010 jest zainstalowany w systemie.
Znane problemy i poprawki
Problem | Rozwiązanie |
---|---|
Funkcja ReadTrace napotka błąd "Nie można nawiązać połączenia z określonym serwerem. Initial HRESULT: 0x80040154" na maszynach, na których program SQL Server nie jest zainstalowany lub zainstalowano tylko program SQL Server 2022 | Naprawiono w wersji 09.04.0103. Aby obejść ten problem, możesz zainstalować klienta natywnego programu SQL Server lub inną wersję programu SQL Server. HrESULT 0x80040154 REGDB_E_CLASSNOTREG Klasa niezarejestrowana jest plikiem nagłówkowym winerror.h , co oznacza, że składnik COM nie jest zarejestrowany, ponieważ prawdopodobnie nie jest zainstalowany. Dzieje się tak, ponieważ program SQL Server 2022 nie dostarcza klienta natywnego programu SQL Server. |
ReadTrace napotka błąd "BŁĄD: sprawdzanie środowiska uruchomieniowego zdarzenia: Wykryto brakującą kolumnę [cached_text] w przypadku [sp_cache_remove] w sekwencji zdarzeń 209494" | Naprawiono w wersji 09.04.0102. Aby obejść ten problem, można dodać flagi śledzenia (-T28 -T29 ) do wiersza polecenia ReadTrace. |
Reporter napotka błąd "Nie można załadować pliku lub zestawu "Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" lub jednej z jego zależności. Weryfikacja silnej nazwy nie powiodła się. (Wyjątek od HRESULT: 0x8013141A)" | Naprawiono w wersji 09.04.0102. Aby obejść ten problem, możesz utworzyć następujący klucz rejestru, aby zastąpić weryfikację silnej nazwy: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35 . |
Błąd ReadTrace kończy się niepowodzeniem z powodu błędu "Nie można nawiązać połączenia z określonym serwerem. Początkowa wartość HRESULT: 0x80040154". Narzędzie Ostress kończy się niepowodzeniem z powodu błędu "Próba nawiązania połączenia nie powiodła się. Błąd zabezpieczeń SSL.". | Zobacz instrukcje dotyczące instalowania klienta natywnego programu SQL Server. |
Napotkasz wyjątek z readTrace "Nieobsługiwany wyjątek: System.IO.FileNotFoundException: Nie można załadować pliku lub zestawu "Microsoft.SqlServer.XEvent.Linq.dll" lub jednej z jego zależności. Nie można odnaleźć określonego modułu". | Instalowanie pakietu redystrybucyjnego Visual C++ 2010 |
Przykłady
W poniższych przykładach pokazano, jak używać niektórych narzędzi języka RML.
Importowanie danych zdarzenia rozszerzonego (Xevent) w bazie danych przy użyciu ReadTrace.exe
Użyj ReadTrace.exe , aby zaimportować serię plików Xevent zbieranych przy użyciu narzędzi, takich jak PSSDIAG/SQLDiag.exe lub SQL LogScout. Użyj parametru -I
, aby wskazać pierwszy plik xel , który został zebrany w czasie, jeśli istnieje wiele plików. W przypadku wszystkich przełączników wiersza polecenia użyj polecenia ReadTrace.exe /?
:
ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.
Używanie Ostress.exe do testowania obciążenia zapytania
Użyj protokołu OStress, aby przesłać zapytanie do serwera, na którym działa program SQL Server, uruchamiając 30 równoczesnych połączeń i uruchamiając zapytanie 10 razy na każdym połączeniu. W przypadku wszystkich przełączników wiersza polecenia użyj polecenia Ostress.exe /?
:
ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10
Używanie funkcji ReadTrace i Ostress do generowania i odtwarzania plików RML
Aby wygenerować wartość . Pliki RML , użyj polecenia podobnego do następującego:
ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb
Aby uzyskać więcej informacji na temat zdarzeń, które należy przechwycić w celu utworzenia śledzenia odtwarzania, zobacz Help.docx języka RML.
Aby odtworzyć plik RML przy użyciu narzędzia Ostress, użyj polecenia podobnego do następującego:
ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"
Wszystkie pliki RML można odtworzyć przy użyciu polecenia *.RML
. Na przykład: -i"D:\RMLReplayTest\RML\*.rml"
.
Wyłączenie odpowiedzialności za kontakty z osobami trzecimi
Firma Microsoft udostępnia informacje kontaktowe innych firm, aby uzyskać dodatkowe informacje na temat tego tematu. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji kontaktowych innych firm.