Bonjour,
Je souhaite connaître pour Oracle 9.2 quelles sont les outlines employées parmis les requêtes qui sont exécutées. Sans tracer les sessions des utilisateurs.
Dans un premier temps je peux voir avec la requête suivante quelles sont celles qui ont été au moins une fois utilisée :
Puis en regardant dans la vue V$SQL, je peux découvrir quelles catégories d'outlines ont été utilisés ces derniers temps par les requêtes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM USER_OUTLINES WHERE USED = 'USED' ORDER BY NAME;
Comment faire pour avoir le nom exact de l'outline employée par une requête en particulier? Est-ce possible en joignant la table USER_OUTLINES et la vue V$SQL?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT OUTLINE_CATEGORY, HASH_VALUE, PLAN_HASH_VALUE, FIRST_LOAD_TIME, SQL_TEXT FROM V$SQL WHERE OUTLINE_CATEGORY IS NOT NULL;
J'ai essayé sans succès avec le champ HASH_VALUE :
Peut être en joignant les deux objets avec les champs SQL_TEXT? Mais l'un est de type LONG l'autre VACHAR(2)... Avez-vous une autre piste?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT A.OUTLINE_CATEGORY, B.OL_NAME, B.SQL_TEXT FROM V$SQL A INNER JOIN OUTLN.OL$ B ON A.HASH_VALUE = B.HASH_VALUE;
Merci!
Partager