Blog

Blog

Plan d'exécution

Il existe plusieurs manières de récupérer un plan d'exécution sous Oracle.

Autotrace only

Cette méthode est ma préférée. Elle aurait cependant l'inconvénient de nécessiter un exécution complète de la requête pour afficher le plan d'exécution. Je n'ai jamais rencontré de problème de lenteur avec cette méthode.
Il suffit d'ajouter la commande autotrace only pour qu'au lieu d'exécuter les requêtes, Oracle nous affiche le plan d'exécution. Je vous laisse faire les set linesize qui vont bien avant.
SET AUTOTRACE TRACEONLY EXPLAIN

Plan_table

Avec cette méthode, on demande la création du plan d'exécution (en lui donnant un id, tant qu'à faire). Le plan d'exécution est ensuite stocké dans la table plan_table. On peut donc l'afficher avec du SQL:
EXPLAIN PLAN SET statement_id='MonId' FOR SELECT * FROM maTable;
SELECT * FROM TABLE(dbms_xplan.display('PLAN_TABLE','MonId',null));
Et voilà vous avez votre plan d'exécution!