ClearTrace, l'outil de Bill Graziano pour optimiser des requêtes SQL

This post is also available in English.

Après avoir écouté le show #103 de RunAs Radio avec Bill Graziano, j'ai décidé de tester ClearTrace, un outil d'analyse de traces SQL.

Il se trouve qu'en ce moment, je suis dans une passe d'optimisation agressive de SQL, et le projet sur lequel je travaille a une séquence d'opérations qui prennent plus de 24 heures à compléter. Analyser manuellement les traces avec le profiler SQL est généralement coûteux en temps, comme de rechercher une aiguille dans une botte de foin, en particulier dans mon cas lorsque le log dépasse 7 Go.

Trouver de petites requêtes qui sont exécutées des milliers de fois est plutôt difficile, et trouver les candidats appropriés à l'optimisation encore plus complexe. On ne veut généralement pas perdre de temps à optimiser des requêtes qui n'ont que peu d'impact.

C'est ici que l'outil de Bill entre en jeu. On lui donne un fichier de trace, et l'outil l'analyse et donne des informations agrégées sur ce qui prend le plus de CPU/Temps/Lecture/Écriture. Faites votre choix.

Après quelques heures et exécution de ClearTrace pour trouver les procédures stockées qui nécessitaient des mises à jour, j'ai trouvé un jeu de procédures qui étaient exécutées des milliers de fois et utilisaient un cumul d'I/O important. Après avoir optimisé ces requêtes, le process au complet est maintenant descendu à environ 7 heures.

Pas de magie ici, la clé est simplement de trouver quoi optimiser dans des séquences qui exécutent des millions de requêtes. L'outil de Bill fait cela parfaitement !

Au passage, lorsque j'ai essayé ClearTrace pour la première fois, j'ai reçu une exception de type OutOfMemory en tentant d'importer mon gros fichier de trace. Il se trouve qu'après l'avoir exporté avec Reflector et debuggé un peu le code, j'ai trouvé une petite  erreur de refactoring que Bill a corrigé rapidement. Merci Bill !

Et comme Carl Franklin le dit dans la section "Better Know a Framework" de .NET Rocks : "learn it, use it, love it !"
Publié mercredi 27 mai 2009 22:27 par jay
Classé sous ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires


Les 10 derniers blogs postés

- Les actualités de la semaine sur c2i.fr (14 mai - 20 mai) par Richard Clark le il y a 4 heures et 19 minutes

- Reactive Extensions : Consommer des services avec Rx Partie 3, les pièges à éviter par Léonard Labat le il y a 13 heures et 24 minutes

- SharePoint Blog Site, problème d’archives par Le Blog (Vert) d'Arnaud JUND le 05-20-2012, 13:09

- Soirée ALT.NET Mai - 3 présentations par #Rui le 05-18-2012, 11:59

- [ #SharePoint 2010][ #SQLServer 2012] AlwaysOn pour SharePoint (2/4) : Configuration (2e partie)… par Le blog de Patrick [MVP SharePoint] le 05-18-2012, 11:31

- Team Foundation Server 11: tous les trésors cachés du site d’équipe par Philess le 05-16-2012, 19:01

- [PowerShell 3] Télécharger et installer la documentation en ligne par Blog de SPBrouillet (Pierrick BROUILLET) le 05-16-2012, 17:36

- [#SharePoint 2010][#SQLServer 2012] AlwaysOn pour SharePoint (1/4) : Configuration (1ère partie)… par Le blog de Patrick [MVP SharePoint] le 05-16-2012, 12:10

- Job Day @MIC Brussels - .Net Developers on Mobile applications par Le Blog (Vert) d'Arnaud JUND le 05-15-2012, 20:26

- [SharePoint 2010] – SharePoint 2010, Windows (Server) 8 et des erreurs IIS sont dans une VM… par Blog de SPBrouillet (Pierrick BROUILLET) le 05-14-2012, 12:10