dimanche 20 mai 2007

Tuning simple de requête : Visualiser les plans d'execution

Les plans d'excution (explain plan) représentent toutes les étapes réalisé par le software Oracle pour éxecuter votre requête. C'est en quelque sorte sa feuille de route.

Pour afficher le plan d'execution des requetes, il suffit de parametrer sa session en executant la commande suivante :

set autot trace EXPLAIN stat


Ensuite toutes les requetes vont afficher leur plan d'execution ainsi que de precieuses informations comme le nombre d'appels récursifs, le nombre de lecture physiques, logiques, la taile des data envoyé au client, etc ...

Ces statistiques permettent de détecter rapidement les problèmes qui pourraient ralentir votre requete. C'est la première étape pour faire du tuning de requête.

Un petit exemple :

Nous executons la requete suivante : select * from v$database;



Nous obtenons le plan d'execution avec en dessous ses statistiques.
Dans le tableau, nous pouvons voir toutes les etapes, executé de bas vers le haut :
  1. parcourt d'une table X$KCCDI2 entièrement : 100 lignes, le cout de 0
  2. trie de ces lignes
  3. parcourt de la table entiere X$KCCDI de 1 ligne
  4. jointure de ces 2 groupes de data provenant des tables ci-dessus
  5. select final des champs voulu

Bon, c'est un select *, donc pas tres explicite, mais c'est ici que l'on peut voir le parcourt des index, si la requete parcourt toute la table ou seulement quelques lignes grace aux index, les group by ...

Dans la seconde partie, les statistiques, l'affichage est assez explicite, on visualise directement les valeurs incoherentes (ici aucunes :-).

Aucun commentaire: