L’un des avantages du support Oracle est sa collection d’outils et de scripts. Ceux-ci sont largement utilisables en dehors du contexte des appels au support ou de « bugs ». Les outils les plus connus sont OSWATCHER, LTOM, RDA et son module HCVE qui permet d’identifier rapidement des erreurs de configurations du système.
Si vous traitez de problèmes de performance SQL, prenez 2 heures pour vous familiariser avec SQLT (aka SQLTXPLAIN) ; celui-ci extrait toutes les informations nécessaires pour analyser et corriger rapidement des problèmes de performances SQL. En bref, SQLTXPLAIN contient l’ensemble des fonctions suivantes :
- sqltrcanlzr (TRCANLZR) formatte les fichiers de trace Oracle de manière plus avancée que tkprof permettant de retrouver, par exemple, les liens entre des ordres SQL, les valeurs des variables binds ou les relations entre wait events et SQL
- sqltxtract extrait toutes les informations relatives à un ordre SQL. Il permet, à partir d’un SQL ID, de collecter les objets et le DDL, les statistiques, les plans, les valeurs de bind, les paramètres… Ce script peut même, le cas échéant, collecter les données avec SQL Test Case Builder
- sqltxecute exécute un script qui contient un ordre SQL et collecte les informations associées à son exécution. Vous pourrez l’utiliser à partir du résultat de sqltxtract et après, par exemple, l’avoir copié sur un autre environnement
- sqltxtrxec lance successivement sqltxtract et sqltxecute
- sqltcompare permet de comparer les informations relatives à 2 collectes réalisées via sqltxtract et/ou sqltxecute
- sqltxplain collecte et formate les informations relatives à un ordre « explain plan » à partir d’ordres SQL contenus dans un script
- sqltrcaset effectue un ensemble d’extractions d’informations via sqltxtract pour les ordres SQL les plus significatifs d’une session sqltrcanlzr
- sqltxtrset permet d’extraire les informations via sqltxtract pour les ordres SQL capturés dans AWR
- xplore permet de retrouver des plans d’exécutions avant des changements de paramètres ou un upgrade de base de données en jouant sur optimizer_feature_enable
- Profile (aka sqltprofile) recherche les plans plus performants d’un ordre SQL donné dans des exécutions précédentes capturées dans AWR ou dans la shared pool. Il peut fixer ce plan via un SQL Profile et le Tuning Pack
- xgram facilite la manipulation de statistiques de type histogramme. Les scripts associés permettent de modifier ces valeurs pour des tests
- xhume recherche d’anciens plans en faisant des retours arrière sur les statistiques des objets associés. Cela permet notamment de retrouver des cas de dysfonctionnements ou de meilleurs fonctionnement qu’on sait avoir eu lieu sans avoir pu les tracer
- coe_load_sql_baseline permet de générer une baseline SQL Plan Management à partir d’un plan généré artificiellement avec des hints par exemple et de l’associer à l’ordre SQL de notre choix
- coe_load_sql_profile, coe_gen_sql_profile et coe_xfr_sql_profile permettent de générer et charger des SQL Profile pour à partir de plans récupérés ou générés artificiellement avec des hints, par exemple.
Ces scripts permettent en particulier : (1) de faciliter les échanges entre environnements et (2) de conserver les informations en vue de retrouver, plusieurs mois après, ce qui a été fait dans le cadre d’une optimisation.
Alors pourquoi développer et maintenir ses scripts quand Oracle fait le travail ? Utilisez les outils du support en commençant par la note « Diagnostic Tools Catalog [ID 559339.1]« .