15 octobre 2008
3
15
/10
/octobre
/2008
19:45
Bonsoir,
Dans l'article précédent, j'ai fait mention de la possibilité d'activer une trace pertinente en executant la commande suivante
SET AUTOTRACE ON
Peut-être certains ont-ils essayé et ont la désagrable surprise d'avoir l'erreur suivante:
SP2-0618 : Impossible de trouver l'identificateur de session. Le rôle PLUSTRACE doit être activé.
SP2-0611 : Erreur lors de l'activation de l'état STATISTICS
Et oui notre ami ORACLE, n'est pas que sympathique, il lui arrive d'être farceur. Allez savoir pourquoi ce rôle n'est pas activé par défaut.
La procédure pour l'activer est relativement simple.
Il faut se connect en sys as sysdba dans une session SQL + et lancer les commandes suivantes:
SQL> @?\sqlplus\admin\plustrce.sql
SQL> GRANT PLUSTRACE TO PUBLIC;
le "?" (uniquement sous WINDOWS il me semble) permet d'accéder à ORACLE_HOME.
Je pourrai très bien restreindre le GRANT des utilisateurs nommés. Mais honnetement, je ne vois pas l'interêt.
Pour le moment je n'ai parlé que de l'option SET AUTOTRACE ON, mais il en existe d'autre.
Les statistiques données par AUTOTRACE sont très importantes et peuvent vous permettent dans certains cas de faire le bon choix entre deux requêtes.
Il n'est pas forcement nécessaire d'être un export en tuning pour comparer deux tableaux de statistiques et en tirer des conséquences.
Souvenez vous de l'article précédent ou nous opposions une requête à plus de trois millions de "consistent gets" (jointure de type nested loop) contre 23000 (jointure par hashage).
Sans avoir activer AUTOTRACE à ON, il n'était pas forcément évident d'effectuer le bon choix.
Bonne soirée !
LAO.
Dans l'article précédent, j'ai fait mention de la possibilité d'activer une trace pertinente en executant la commande suivante
SET AUTOTRACE ON
Peut-être certains ont-ils essayé et ont la désagrable surprise d'avoir l'erreur suivante:
SP2-0618 : Impossible de trouver l'identificateur de session. Le rôle PLUSTRACE doit être activé.
SP2-0611 : Erreur lors de l'activation de l'état STATISTICS
Et oui notre ami ORACLE, n'est pas que sympathique, il lui arrive d'être farceur. Allez savoir pourquoi ce rôle n'est pas activé par défaut.
La procédure pour l'activer est relativement simple.
Il faut se connect en sys as sysdba dans une session SQL + et lancer les commandes suivantes:
SQL> @?\sqlplus\admin\plustrce.sql
SQL> GRANT PLUSTRACE TO PUBLIC;
le "?" (uniquement sous WINDOWS il me semble) permet d'accéder à ORACLE_HOME.
Je pourrai très bien restreindre le GRANT des utilisateurs nommés. Mais honnetement, je ne vois pas l'interêt.
Pour le moment je n'ai parlé que de l'option SET AUTOTRACE ON, mais il en existe d'autre.
Option | Explication |
SET AUTOTRACE OFF | Il s'agit de la valeur par défaut.Dans ce cas aucune trace n'est générée. |
SET AUTOTRACE ON EXPLAIN | Cette option n'affiche que le plan d'execution de la requête executée. |
SET AUTOTRACE ON STATISTICS | Cette option n'affiche que les statistiques. |
SET AUTOTRACE ON | Ici, nous avons les deux : Plan d'execution + Statistiques |
SET AUTOTRACE TRACEONLY | Cette option est identique à la précédente à l'exception de l'affichage du résultat de la requête. Ce peut être très utile dans le cas de SELECT retournant plusieurs milliers de lignes. |
Les statistiques données par AUTOTRACE sont très importantes et peuvent vous permettent dans certains cas de faire le bon choix entre deux requêtes.
Il n'est pas forcement nécessaire d'être un export en tuning pour comparer deux tableaux de statistiques et en tirer des conséquences.
Souvenez vous de l'article précédent ou nous opposions une requête à plus de trois millions de "consistent gets" (jointure de type nested loop) contre 23000 (jointure par hashage).
Sans avoir activer AUTOTRACE à ON, il n'était pas forcément évident d'effectuer le bon choix.
Bonne soirée !
LAO.