[Oracle 9.2] comment connaître l'outline utilisée par une requête?
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 :
Code:
SELECT * FROM USER_OUTLINES WHERE USED = 'USED' ORDER BY NAME;
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:
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; |
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?
J'ai essayé sans succès avec le champ HASH_VALUE :
Code:
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; |
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?
Merci!