Partager via


Relecture des utilitaires RML (Replay Markup Language) pour SQL Server

Cet article décrit un groupe d’outils utilisés par les professionnels du support technique pour résoudre les problèmes de Microsoft SQL Server.

Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 944837

Qu’est-ce que les utilitaires RML ?

Les utilitaires RML sont un ensemble d’outils de diagnostic permettant de résoudre et d’aider les problèmes de performances dans SQL Server. Vous pouvez les considérer comme similaires à des outils qui aident les techniciens médicaux à traiter les résultats de la radiographie, de l’IRM et du scanner CT. Les utilitaires RML sont utilisés pour traiter et visualiser les données de diagnostic des performances collectées par les utilisateurs. Ces outils sont couramment utilisés par les ingénieurs de support SQL Server pour traiter les traces de diagnostic lors de la résolution d’un problème de performances. En outre, les utilitaires RML sont fréquemment utilisés par les développeurs et administrateurs de base de données pour analyser et améliorer leur charge de travail de requête SQL Server à partir de leurs environnements de test et de production. Il existe trois utilitaires dans la suite : ReadTrace, Reporter et Ostress.

  • ReadTrace prend en charge les traces d’événements étendues ou les traces de trace SQL qu’un utilisateur crée pour diagnostiquer un problème SQL Server ou analyser les performances de la charge de travail. ReadTrace importe les traces dans des tables d’une base de données SQL Server spécifiée par l’utilisateur. Considérez ReadTrace comme un outil de transformation : il prend des fichiers binaires ou .TRC des .XEL fichiers et les importe dans des tables afin qu’ils puissent être plus facilement analysés via des requêtes SQL. ReadTrace peut également générer le langage de balisage de relecture (. Fichiers RML) qui peuvent être utilisés par Ostress pour la relecture de charge de travail.
  • Reporter est un outil de rapport et de visualisation qui se connecte à la base de données utilisateur créée par ReadTrace. Reporter exécute des requêtes SQL sur la base de données et affiche des résumés de rapport SSRS hors connexion des traces d’événements étendus ou de profileur d’origine. Par exemple, un rapport peut indiquer quelles requêtes ont exécuté la plus longue charge de travail capturée, qui a utilisé le plus d’UC et qui a effectué les lectures les plus longues.
  • Ostress est un outil de simulation de test de stress. Ostress.exe utilise des traces de diagnostic d’événement étendu ou SQL Profiler comme entrée. Il peut également accepter les requêtes fournies par l’utilisateur en tant qu’entrées. Ostress relit ensuite ces traces ou requêtes sur une instance SQL Server choisie par l’utilisateur. L’objectif est de simuler le stress. Par exemple, si vous fournissez une requête OStress comme select * from table1, vous pouvez lui demander d’exécuter la requête 100 fois sur 50 connexions simultanément. Outre les requêtes individuelles, Ostress peut utiliser des fichiers RML spéciaux générés par ReadTrace pour effectuer la relecture.
  • OStress Replay Control Agent (ORCA) aide Ostress à simuler un test de contrainte en relecture d’une charge de travail à partir de fichiers RML. Vous n’interagissez pas directement avec ORCA, mais utilisez Ostress.

Pour obtenir une description complète de chaque outil et des exemples d’utilisation, consultez le fichier d’aide RML inclus dans les utilitaires RML pour SQL Server.

Comment les utilitaires RML sont-ils utiles ?

Vous pouvez utiliser les utilitaires RML pour SQL Server pour effectuer les tâches suivantes :

  • Déterminez l’application, la base de données, la connexion SQL Server ou la requête qui utilise les ressources maximales.
  • Déterminez si le plan d’exécution d’un lot est modifié lorsque vous capturez la trace du lot. En outre, vous pouvez utiliser des utilitaires RML pour SQL Server pour déterminer comment SQL Server exécute ces plans.
  • Déterminez les requêtes qui s’exécutent lentement.

Après avoir capturé une trace pour une instance de SQL Server, vous pouvez utiliser les utilitaires RML pour SQL Server pour relire le fichier de trace sur une autre instance de SQL Server. Si vous capturez également la trace pendant la relecture, vous pouvez utiliser les utilitaires RML pour SQL Server pour comparer le nouveau fichier de trace au fichier de trace d’origine. Vous pouvez utiliser cette technique pour tester le comportement de SQL Server après avoir appliqué des modifications. Par exemple, vous pouvez utiliser cette technique pour tester le comportement de SQL Server après avoir effectué les tâches suivantes :

  • Installez un service pack SQL Server.
  • Installez une mise à jour cumulative SQL Server.
  • Mettez à jour une procédure stockée ou une fonction.
  • Mettez à jour ou créez un index.

Avantages des utilitaires RML pour SQL Server

Les utilitaires RML pour SQL Server sont utiles si vous souhaitez simuler des tests d’application lorsqu’il n’est pas pratique ou impossible de tester à l’aide de l’application réelle. Dans un environnement de test, il peut être difficile de générer la charge utilisateur qui existe dans l’environnement de production. Vous pouvez utiliser les utilitaires RML pour SQL Server pour relire une charge de travail de production dans un environnement de test et évaluer l’effet de performances des modifications. Par exemple, vous pouvez tester une mise à niveau vers SQL Server 2008 ou l’application d’un service pack SQL Server. En outre, vous pouvez utiliser les utilitaires RML pour SQL Server pour analyser et comparer différentes charges de travail de relecture. L’exécution manuelle de ce type d’analyse de régression est difficile.

Le fichier d’aide contient une rubrique de démarrage rapide. Cette rubrique comprend un bref exercice qui vous familiarise avec chaque outil RML. Pour ouvrir le fichier d’aide, sélectionnez Start>All Programs>RML Utilities for SQL Server>Help>RML Help.

Télécharger l’emplacement et l’historique des versions

Vous pouvez examiner l’historique des versions des utilitaires RML dans ce tableau et télécharger les outils à partir d’ici.

Numéro de version Description
09.04.0103 Indique la version web actuelle disponible à partir du Centre de téléchargement Microsoft. Il prend en charge toutes les versions publiées de SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 et SQL Server 2008).
09.04.0102 Indique la version web précédente disponible à partir du Centre de téléchargement Microsoft. Il prend en charge toutes les versions publiées de SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 et SQL Server 2008).
9.04.0100 Indique une version web précédente disponible à partir du Centre de téléchargement Microsoft. Il prend en charge toutes les versions publiées de 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 et SQL Server 2000).
9.04.0098 Indique un package de mise en production web précédent inclus dans l’outil Assistant Expérimentation de base de données. Il prend en charge toutes les versions publiées de SQL Server.
9.04.0097 Une version précédente disponible à partir du site SQL Nexus qui prend en charge toutes les versions publiées de SQL Server.
9.04.0051 Une version web précédente disponible à partir du Centre de téléchargement Microsoft qui prend en charge SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 et SQL Server 2000.
9.04.0004 Une version web précédente qui prend en charge SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 et SQL Server 2000.
9.01.0109 Une version web précédente qui prend en charge SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 et SQL Server 2000.
9.00.0023 Une version web précédente qui prend en charge SQL Server 2005 et SQL Server 2000.
8.10.0010 Version web initiale qui prend en charge SQL Server 2000 et SQL Server 7.0.

La version actuelle des utilitaires RML pour SQL Server remplace toutes les versions antérieures. Vous devez désinstaller une version antérieure des utilitaires RML pour SQL Server avant d’installer la version actuelle. La version actuelle de la suite d’outils contient des mises à jour logicielles importantes, des fonctionnalités améliorées (traiter les fichiers .trc et .xel ) et des rapports, ainsi que des améliorations des performances et de l’extensibilité.

Obtenir les utilitaires RML pour SQL Server

  • Les utilitaires RML pour SQL Server sont disponibles en téléchargement à partir du Centre de téléchargement Microsoft.

  • Après avoir installé le Assistant Expérimentation de base de données, vous trouverez les outils RML (ReadTraceet OStress) dans le C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\ dossier.

Note

Microsoft fournit des utilitaires RML pour SQL Server comme c’est le cas. Les services de support technique Microsoft (CSS) ne prennent pas en charge la suite. Si vous avez une suggestion ou si vous souhaitez signaler un bogue, vous pouvez utiliser l’adresse e-mail dans l’article « Problèmes et assistance » dans le fichier d’aide (RML Help.docx). Le fichier d’aide est inclus dans les utilitaires RML pour SQL Server.

Dépendances pour les utilitaires RML pour SQL Server

Important

Les applications fournies dans le cadre de la suite d’outils RML nécessitent que plusieurs autres contrôles soient disponibles.

Dépendances pour Reporter

Vous devez vous assurer que les contrôles visionneuse de rapports sont disponibles dans le même dossier que Reporter.exe ou dans le Global Assembly Cache (GAC). Les DLL requises par Reporter.exe sont les suivantes :

  • Microsoft.ReportViewer.Common.dll
  • Microsoft.ReportViewer.DataVisualization.dll
  • Microsoft.ReportViewer.ProcessingObjectModel.dll
  • Microsoft.ReportViewer.WinForms.dll
  1. Les dernières versions des utilitaires RML incluent ces DLL dans le dossier d’application.

  2. Si ce n’est pas disponible, vous pouvez télécharger ces DLL à l’aide du script PowerShell suivant :

    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. Vous devez télécharger et installer un correctif ReporterViewer pour autoriser les liens dans les rapports ReadTrace à fonctionner correctement. Pour télécharger le correctif ReporterViewer, accédez à Microsoft Visual Studio 2010 Service Pack 1 Report Viewer (KB2549864).

Dépendances pour expandeur (facultatif)

Dans la plupart des cas, Expander, que ReadTrace utilise pour traiter les fichiers CAB/ZIP/RAR, n’est pas utilisé. Toutefois, si vous devez utiliser cette fonctionnalité pour un type de fichier compressé particulier, vérifiez que les contrôles de compression et de décompression sont disponibles dans le même dossier que Expander.exe ou dans le GAC. Les DLL requises par Expander.exe sont les suivantes :

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

Vous pouvez obtenir ces DLL à partir des packages logiciels respectifs des fournisseurs :

Dépendances pour ReadTrace et Ostress

ReadTrace et Ostress utilisent les pilotes ODBC et OLEDB fournis dans le cadre de SQL Server Native Client. À compter de la version 09.04.0103, la suite d’utilitaires RML ne dépend pas uniquement de SQL Server Native Client (SNAC). Il peut utiliser les pilotes Microsoft ODBC ou OLEDB sur le système où il est installé.

Si vous envisagez d’analyser les fichiers d’événements étendus (*.xel), vérifiez que Visual C++ 2010 Redistributable est installé sur le système.

Les problèmes connus et les corrections

Problème Résolution
ReadTrace rencontre une erreur « Impossible de se connecter au serveur spécifié. HRESULT initial : 0x80040154 » sur les machines où SQL Server n’est pas installé ou uniquement SQL Server 2022 est installé Correction dans la version 09.04.0103. Pour contourner ce problème, vous pouvez installer SQL Server Native Client ou une autre version de SQL Server. HRESULT 0x80040154 REGDB_E_CLASSNOTREG Classe non inscrite est un fichier d’en-tête winerror.h , ce qui signifie qu’un composant COM n’est pas inscrit, car il n’est probablement pas installé. Cela se produit parce que SQL Server 2022 n’est pas fourni à SQL Server Native Client.
ReadTrace rencontre « ERROR : Event runtime check : Détection d’une colonne manquante [cached_text] dans l’événement [sp_cache_remove] lors de la séquence d’événements 209494 » Correction dans la version 09.04.0102. Pour contourner ce problème, vous pouvez ajouter des indicateurs de trace (-T28 -T29) à la ligne de commande ReadTrace.
Reporter rencontre « Impossible de charger le fichier ou l’assembly « Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 » ou l’une de ses dépendances. Échec de la validation de nom fort. (Exception de HRESULT : 0x8013141A)" Correction dans la version 09.04.0102. Pour contourner ce problème, vous pouvez créer la clé de Registre suivante pour remplacer la vérification de nom fort : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35.
ReadTrace échoue avec l’erreur « Impossible de se connecter au serveur spécifié. HRESULT initial : 0x80040154 ». Ostress échoue avec l’erreur « Échec de la tentative d’établissement de la connexion. Erreur de sécurité SSL. Consultez les instructions d’installation de SQL Server Native Client.
Vous rencontrez l’exception de ReadTrace « Exception non gérée : System.IO.FileNotFoundException : Impossible de charger le fichier ou l’assembly « Microsoft.SqlServer.XEvent.Linq.dll » ou l’une de ses dépendances. Impossible de trouver le module spécifié. Installer Visual C++ 2010 Redistributable

Exemples

Les exemples suivants illustrent comment utiliser certains des outils RML.

Utilisation de ReadTrace.exe pour importer des données d’événement étendu (Xevent) dans une base de données

Utilisez ReadTrace.exe pour importer une série de fichiers Xevent collectés à l’aide d’outils tels que PSSDIAG/SQLDiag.exe ou SQL LogScout. Utilisez le -I paramètre pour pointer vers le premier fichier .xel collecté dans le temps, si plusieurs fichiers sont présents. Pour tous les commutateurs de ligne de commande, utilisez ReadTrace.exe /?:

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

Utilisation de Ostress.exe pour tester une requête

Utilisez OStress pour envoyer une requête sur un serveur exécutant SQL Server en exécutant 30 connexions simultanées et en exécutant la requête 10 fois sur chaque connexion. Pour tous les commutateurs de ligne de commande, utilisez Ostress.exe /?:

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

Utilisation de ReadTrace et Ostress pour générer et relire des fichiers RML

Pour générer . Les fichiers RML , utilisez une commande comme celle suivante :

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

Pour plus d’informations sur les événements à capturer pour créer une trace de relecture, consultez la Help.docx RML.

Pour relire un fichier RML à l’aide d’Ostress, utilisez une commande comme suit :

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

Vous pouvez relire tous les fichiers RML à l’aide *.RMLde . Par exemple : -i"D:\RMLReplayTest\RML\*.rml".

Exclusion de responsabilité sur les coordonnées externes

Microsoft fournit des informations de contacts externes afin de vous aider à obtenir un support technique sur ce sujet. Ces informations de contact peuvent changer sans préavis. Microsoft ne garantit pas l’exactitude des informations concernant les sociétés externes.

Ressources supplémentaires

Résolution des problèmes et outils de diagnostic pour les scénarios locaux et hybrides SQL Server