Utilità RML (Replay Markup Language) per SQL Server
Questo articolo illustra un gruppo di strumenti usati dai professionisti del supporto tecnico per risolvere i problemi relativi a Microsoft SQL Server.
Versione originale del prodotto: SQL Server
Numero KB originale: 944837
Che cosa sono le utilità RML?
Le utilità RML sono un set di strumenti di diagnostica per la risoluzione dei problemi di prestazioni e per facilitare i problemi di prestazioni in SQL Server. È possibile considerarli simili a strumenti che aiutano i tecnici medici a elaborare i risultati dell'analisi a raggi X, MRI e CT. Le utilità RML vengono usate per elaborare e visualizzare i dati di diagnostica delle prestazioni raccolti dagli utenti. Questi strumenti vengono comunemente usati dai tecnici del supporto di SQL Server per elaborare le tracce di diagnostica durante la risoluzione di un problema di prestazioni. Inoltre, le utilità RML vengono spesso usate dagli sviluppatori di database e dagli amministratori per analizzare e migliorare il carico di lavoro di query di SQL Server dai propri ambienti di test e produzione. Ci sono tre utilità nella suite: ReadTrace, Reporter e Ostress.
-
ReadTrace accetta tracce di eventi estesi o tracce di traccia SQL create da un utente per diagnosticare un problema di SQL Server o analizzare le prestazioni del carico di lavoro. ReadTrace importa le tracce in tabelle in un database di SQL Server specificato dall'utente. Si pensi a ReadTrace come strumento di trasformazione: accetta file binari
.XEL
o.TRC
e li importa in tabelle in modo che possano essere analizzati più facilmente tramite query SQL. ReadTrace può anche generare replay Markup Language (. File RML) che possono essere usati da Ostress per la riproduzione del carico di lavoro. - Reporter è uno strumento di visualizzazione e report che si connette al database utente creato da ReadTrace. Reporter esegue query SQL sul database e mostra riepiloghi dei report SSRS offline delle tracce originali degli eventi estesi o del profiler. Ad esempio, un report potrebbe mostrare quali query hanno eseguito il più lungo in un determinato carico di lavoro acquisito, che ha usato la maggior parte della CPU e che ha eseguito la maggior parte delle letture.
-
Ostress è uno strumento di simulazione di test di stress.
Ostress.exe usa tracce di diagnostica di SQL Profiler o eventi estesi come input. Può anche accettare query fornite dall'utente come input. Ostress quindi riproduce tali tracce o query su un'istanza di SQL Server scelta dall'utente. L'obiettivo è simulare lo stress. Ad esempio, se si specifica OStress una query come
select * from table1
, è possibile indicare di eseguire la query 100 volte su 50 connessioni contemporaneamente. Oltre alle singole query, Ostress può usare file RML speciali generati da ReadTrace per eseguire la riproduzione. - OStress Replay Control Agent (ORCA) aiuta Ostress a simulare un test di stress riproducendo un carico di lavoro dai file RML. Non si interagisce direttamente con ORCA, ma si usa Ostress.
Per una descrizione completa di ogni strumento e utilizzo di esempio, vedere il file della Guida RML incluso in Utilità RML per SQL Server.
Come sono utili le utilità RML?
È possibile usare le utilità RML per SQL Server per eseguire le attività seguenti:
- Determinare l'applicazione, il database, l'account di accesso di SQL Server o la query che usano le risorse massime.
- Determinare se il piano di esecuzione per un batch viene modificato quando si acquisisce la traccia per il batch. Inoltre, è possibile usare le utilità RML per SQL Server per determinare il modo in cui SQL Server esegue questi piani.
- Determinare le query in esecuzione lentamente.
Dopo aver acquisito una traccia per un'istanza di SQL Server, è possibile usare utilità RML per SQL Server per riprodurre il file di traccia su un'altra istanza di SQL Server. Se si acquisisce anche la traccia durante la riproduzione, è possibile usare utilità RML per SQL Server per confrontare il nuovo file di traccia con il file di traccia originale. È possibile usare questa tecnica per verificare il comportamento di SQL Server dopo l'applicazione delle modifiche. Ad esempio, è possibile usare questa tecnica per testare il comportamento di SQL Server dopo aver eseguito le attività seguenti:
- Installare un Service Pack di SQL Server.
- Installare un aggiornamento cumulativo di SQL Server.
- Aggiornare una stored procedure o una funzione.
- Aggiornare o creare un indice.
Vantaggi delle utilità RML per SQL Server
Le utilità RML per SQL Server sono utili se si vuole simulare il test dell'applicazione quando è poco pratico o impossibile eseguire il test usando l'applicazione reale. In un ambiente di test potrebbe essere difficile generare lo stesso carico utente presente nell'ambiente di produzione. È possibile usare le utilità RML per SQL Server per riprodurre un carico di lavoro di produzione in un ambiente di test e valutare l'effetto delle prestazioni di eventuali modifiche. Ad esempio, è possibile testare un aggiornamento a SQL Server 2008 o all'applicazione di un Service Pack di SQL Server. Inoltre, è possibile usare le utilità RML per SQL Server per analizzare e confrontare vari carichi di lavoro di riproduzione. L'esecuzione manuale di questo tipo di analisi di regressione è difficile.
Il file della Guida contiene un argomento di avvio rapido. Questo argomento include un breve esercizio che consente di acquisire familiarità con ogni strumento RML. Per aprire il file della Guida, selezionare Start All Programs RML Utilities for SQL Server Help RML Help (Avvia>tutti i programmi>per la Guida> RML di SQL Server).>
Percorso di download e cronologia delle versioni
È possibile esaminare la cronologia delle versioni delle utilità RML in questa tabella e scaricare gli strumenti da qui.
Numero versione | Descrizione |
---|---|
09.04.0103 | Indica la versione Web corrente disponibile nell'Area download Microsoft. Supporta tutte le versioni rilasciate di SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 e SQL Server 2008). |
09.04.0102 | Indica la versione Web precedente disponibile nell'Area download Microsoft. Supporta tutte le versioni rilasciate di SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 e SQL Server 2008). |
9.04.0100 | Indica una versione Web precedente disponibile nell'Area download Microsoft. Supporta tutte le versioni rilasciate di 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 e SQL Server 2000). |
9.04.0098 | Indica un pacchetto di versione Web precedente incluso nello strumento Database Experimentation Assistant. Supporta tutte le versioni rilasciate di SQL Server. |
9.04.0097 | Versione precedente disponibile dal sito SQL Nexus che supporta tutte le versioni rilasciate di SQL Server. |
9.04.0051 | Versione Web precedente disponibile nell'Area download Microsoft che supporta SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 e SQL Server 2000. |
9.04.0004 | Versione Web precedente che supporta SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 e SQL Server 2000. |
9.01.0109 | Versione Web precedente che supporta SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 e SQL Server 2000. |
9.00.0023 | Versione Web precedente che supporta SQL Server 2005 e SQL Server 2000. |
8.10.0010 | Versione Web iniziale che supporta SQL Server 2000 e SQL Server 7.0. |
La versione corrente di RML Utilities per SQL Server sostituisce tutte le versioni precedenti. È necessario disinstallare qualsiasi versione precedente di RML Utilities per SQL Server prima di installare la versione corrente. La versione corrente della suite di strumenti contiene importanti aggiornamenti software, funzionalità migliorate (elaborare file trc e xel ) e report e miglioramenti delle prestazioni e della scalabilità.
Ottenere le utilità RML per SQL Server
Le utilità RML per SQL Server sono disponibili per il download dall'Area download Microsoft.
Dopo aver installato Database Experimentation Assistant, nella cartella sono disponibili gli strumenti RML (
ReadTrace
eOStress
).C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\
Note
Microsoft fornisce utilità RML per SQL Server così come è. Il Servizio Supporto Tecnico Clienti Microsoft (CSS) non fornisce supporto per la famiglia di prodotti. Se si ha un suggerimento o si desidera segnalare un bug, è possibile usare l'indirizzo di posta elettronica nell'articolo "Problemi e assistenza" nel file della Guida (RML Help.docx). Il file della Guida è incluso con le utilità RML per SQL Server.
Dipendenze per le utilità RML per SQL Server
Importante
Le applicazioni fornite come parte della suite di strumenti RML richiedono che siano resi disponibili diversi altri controlli.
Dipendenze per reporter
È necessario assicurarsi che i controlli Visualizzatore report siano disponibili nella stessa cartella di Reporter.exe o nella Global Assembly Cache (GAC). Le DLL richieste Reporter.exe sono:
- Microsoft.ReportViewer.Common.dll
- Microsoft.ReportViewer.DataVisualization.dll
- Microsoft.ReportViewer.ProcessingObjectModel.dll
- Microsoft.ReportViewer.WinForms.dll
Le versioni più recenti di Utilità RML includono queste DLL nella cartella dell'applicazione.
Se non è disponibile, è possibile scaricare queste DLL usando lo script di PowerShell seguente:
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"
È necessario scaricare e installare una correzione di ReporterViewer per consentire il corretto funzionamento dei collegamenti all'interno dei report ReadTrace. Per scaricare la correzione di ReporterViewer, passare a Microsoft Visual Studio 2010 Service Pack 1 Report Viewer (KB2549864).
Dipendenze per Expander (facoltativo)
Nella maggior parte dei casi, Expander, usato da ReadTrace per elaborare i file CAB/ZIP/RAR, non viene utilizzato. Tuttavia, se è necessario usare questa funzionalità per un particolare tipo di file compresso, assicurarsi che i controlli di compressione e decompressione siano disponibili nella stessa cartella di Expander.exe o nella GAC. Le DLL richieste Expander.exe sono le seguenti:
- BRICOLSOFTZipx64.dll
- UnRar64.dll
- XceedZipX64.dll
È possibile ottenere queste DLL dai rispettivi pacchetti software dei fornitori:
https://www.rarlab.com/rar_add.htm - Trovare la libreria dinamica UnRAR.dll per sviluppatori di software Windows
Dipendenze per ReadTrace e Ostress
ReadTrace e Ostress usano i driver ODBC e OLEDB forniti come parte di SQL Server Native Client. A partire dalla versione 09.04.0103, la suite RML Utilities non dipende solo da SQL Server Native Client (SNAC). Può usare i driver Microsoft ODBC o OLEDB nel sistema in cui è installato.
Se si prevede di analizzare i file degli eventi estesi (*.xel), assicurarsi che Visual C++ 2010 Redistributable sia installato nel sistema.
Problemi noti e correzioni
Problema | Risoluzione |
---|---|
ReadTrace rileva un errore "Impossibile connettersi al server specificato. HRESULT iniziale: 0x80040154" nei computer in cui SQL Server non è installato o viene installato solo SQL Server 2022 | Correzione nella versione 09.04.0103. Come soluzione alternativa, è possibile installare SQL Server Native Client o un'altra versione di SQL Server. HRESULT 0x80040154 REGDB_E_CLASSNOTREG Classe non registrata è un file di intestazione winerror.h che significa che un componente COM non è registrato perché probabilmente non è installato. Ciò accade perché SQL Server 2022 non fornisce SQL Server Native Client. |
ReadTrace rileva "ERROR: Event runtime check: Detected missing column [cached_text] in event [sp_cache_remove] at event sequence 209494" | Correzione nella versione 09.04.0102. Come soluzione alternativa, è possibile aggiungere flag di traccia (-T28 -T29 ) alla riga di comando ReadTrace. |
Il reporter rileva "Impossibile caricare il file o l'assembly 'Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' o una delle relative dipendenze. Convalida del nome sicuro non riuscita. (Eccezione da HRESULT: 0x8013141A)" | Correzione nella versione 09.04.0102. Come soluzione alternativa, è possibile creare la chiave del Registro di sistema seguente per eseguire l'override della verifica del nome sicuro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35 . |
ReadTrace ha esito negativo e viene visualizzato l'errore "Impossibile connettersi al server specificato. HRESULT iniziale: 0x80040154". Ostress non riesce e viene visualizzato l'errore "Tentativo di stabilire la connessione non riuscita. Errore di sicurezza SSL.". | Vedere le istruzioni per installare SQL Server Native Client. |
Si verifica l'eccezione di ReadTrace "Eccezione non gestita: System.IO.FileNotFoundException: Impossibile caricare il file o l'assembly 'Microsoft.SqlServer.XEvent.Linq.dll' o una delle relative dipendenze. Impossibile trovare il modulo specificato". | Installare Visual C++ 2010 Redistributable |
Esempi
Gli esempi seguenti illustrano come usare alcuni degli strumenti RML.
Uso di ReadTrace.exe per importare dati Xevent (Extended Event) in un database
Usare ReadTrace.exe per importare una serie di file Xevent raccolti usando strumenti come PSSDIAG/SQLDiag.exe o SQL LogScout. Usare il -I
parametro per puntare al primo file con estensione xel raccolto nel tempo, se sono presenti più file. Per tutte le opzioni della riga di comando, usare ReadTrace.exe /?
:
ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.
Uso di Ostress.exe per testare lo stress di una query
Usare OStress per inviare una query su un server che esegue SQL Server eseguendo 30 connessioni simultanee ed eseguendo la query 10 volte in ogni connessione. Per tutte le opzioni della riga di comando, usare Ostress.exe /?
:
ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10
Uso di ReadTrace e Ostress per generare e riprodurre file RML
Per generare . I file RML usano un comando simile al seguente:
ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb
Per altre informazioni sugli eventi da acquisire per creare una traccia di riproduzione, vedere il Help.docx RML.
Per riprodurre un file RML usando Ostress, usare un comando simile al seguente:
ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"
È possibile riprodurre tutti i file RML usando *.RML
. Ad esempio: -i"D:\RMLReplayTest\RML\*.rml"
.
Dichiarazione di non responsabilità di contatti di terze parti
Microsoft fornisce informazioni di contatto di terze parti per aiutarti a trovare ulteriori informazioni su questo argomento. Queste informazioni di contatto sono soggette a modifica senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni di contatto di terze parti.
Risorse aggiuntive
Risoluzione dei problemi e strumenti di diagnostica per scenari locali e ibridi di SQL Server