25 août 2018

EXPLAIN PLAN et AUTOTRACE : même combat? - EXPLAIN PLAN and AUTOTRACE: same fight?

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 eux gèrent parfaitement les bind variables (mais attention au temps  d'exécution).     Et la commande AUTOTRACE, elle génère un vrai... [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 - Use a trace to see the SQL sub-orders

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 : la ligne la plus indentée n'est pas exécutée en premier - The most indented line is not executed first

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 : ,