25 août 2018

EXPLAIN PLAN et AUTOTRACE : même combat?

IntroductionVous savez que pour avoir rapidement un plan d'exécution sous Oracle, il faut utiliser la commande EXPLAIN PLAN. Cela permet de ne pas attendre une heure que s'exécute la requête mais attention aux bind variables, elles ne sont pas gérées. Pour avoir le vrai plan, calculé par le CBO, utilisez en revanche dbms_xplan.display_cursor (ou bien dbms_xplan.display_awr) qui lui gère parfaitement les bind variables mais attention au temps d'exécution.     Et la commande AUTOTRACE, elle génère un vrai plan ou un... [Lire la suite]
Posté par David DBA à 09:36 - - Permalien [#]
Tags : , , ,

03 février 2018

Plan d'exécution : utiliser une trace pour voir les sous-ordres SQL absents du plan

IntroductionLorsqu'on doit optimiser une requête SQL, il arrive parfois qu'on ne comprenne absolument pas comment elle est exécutée par Oracle. Une requête qui devrait se dérouler en une seconde prend en réalité trente minutes sans que le plan d'exécution ne nous renseigne sur ce qui se passe. Dans ce cas là, pas d'hésitation, il faut impérativement utiliser une trace pour, comme son nom l'indique, tracer ce qui se passe réellement dans la base.L'objectif de cet article est donc de bien vous faire prendre conscience de ce phénomène :... [Lire la suite]
Posté par David DBA à 17:56 - - Permalien [#]
Tags : , , ,
08 juin 2017

Plan d'exécution : ce n'est pas la ligne la plus indentée qui est exécutée en premier

IntroductionUn plan d'exécution Oracle peut rapidement devenir incompréhensible dès qu'il comporte des dizaines de lignes. On peut s'aider de Google ou de livres d'administration Oracle pour le décrypter mais, curieusement, même les DBA les plus connus ne sont pas d'accord sur l'ordre dans lequel Oracle exécute les différentes opérations de ce plan! Pour rappel, il est fondamental de comprendre l'exécution de ce plan pour tuner un ordre SQL! Si on ne sait pas quelle est la première opération exécutée, il est impossible de mettre en... [Lire la suite]
Posté par David DBA à 21:33 - - Permalien [#]
Tags : ,