Readtrace : relecture RML (SQL Server Profiler)

Readtrace est un outil d’analyse des traces profiler de SQL Server.
Il permet entre autre d’optimiser les performances et de diagnostiquer d’éventuels problèmes de charge ou d’engorgement.
Il fait partie des utilitaires RML (Replay Markup Language) et est fourni par le support Microsoft à cette adresse : http://support.microsoft.com/kb/944837/fr.

Pour ceux ayant déjà utilisé le Profiler, il est très fastidieux d’exploiter les résultats, tant c’est bavard. Avec Readtrace, tout le travail de consolidation est automatisé. Il permet de traiter les fichiers « .trc » du Profiler en les chargeant dans une base de données.

Ensuite, il devient trivial d’effectuer des interrogations du type :

  • Quels sont les utilisateurs consommant mes données ?
  • Quelles sont les applications ?
  • Quelles bases consomment le plus de ressources ?
  • Quelles sont les requêtes les plus consommatrices ?

Readtrace regroupe les requêtes du même type afin de consolider le résultat : par exemple les requêtes suivantes seront traitées comme une seule et les ressources seront additionnées :

  • SELECT * FROM Client WHERE nom=’Jean’
  • SELECT * FROM Client WHERE nom=’Pierre’

On peut ainsi très simplement identifier les requêtes coûteuses exécutées plusieurs fois pendant la mesure, ce qui est quasiment impossible uniquement avec le Profiler.

Voici donc un exemple d’utilisation effectué sur une base SQL dans le cadre d’un test ASP.NET SignalR (ASP.NET SignalR). Pour commencer, lancer votre « Profiler » (Pour moi, une version SQL 2008 R2 sur un SQL Server 2005). Pour ceux qui lancerait le profiler sur un SQL 2012, attention Readtrace n’a pas encore été mis a jours par Microsoft. Il ne traite donc pas encore les .trc de SQL 2012. Une petite méthode de contournement proposé par Gianluca Sartori : voir article.

SQL_ReadTrace_01

  1. Commencer par donner un nom a votre trace.
  2. La connection à votre serveur SQL.
  3. Utiliser le modèle « Standard ». Certains modèles plus complet ne sont pas pris en charge par ReadTrace et risque de générer des erreurs a l’importation.
  4. Paramétrer l’endroit ou stocker les fichier « .trc » et leur taille.

Faites tourner le Profiler le temps nécessaire pour votre diagnostique. Arrêtez le. Et la commence Readtrace.

En ligne de commande (si vous avez un SQL Server installé sur votre PC) tapez simplement :

  • Readtrace -I »chemin\votrefichier.trc »

Pour une base distante, l’aide de Readtrace donne toutes les informations nécessaire.

SQL_ReadTrace_02

Readtrace purge l’éventuelle précédante base, et l’alimente avec votre fichier de trace.
A l’issu, le reporter est lancé automatiquement, avec les résultats. La plupart des éléments du rapport sont cliquable en « Drill down » et permets ainsi de descendre jusqu’à l’élément souhaité.

SQL_ReadTrace_03

SQL_ReadTrace_04

Voila, à vous de jouer !

Readtrace apporte une mine d’éléments concrets permettant d’optimiser ses applications. Un outil indispensable pour le DBA, mais aussi pour les développeurs qui pourront ainsi disposer de rapports concrets sur la consommation de leurs applications.

Leave a Reply