Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ ORACLE ] statistique sur les requêtes

2 réponses
Avatar
Fabien P
bonjour,

j'aimerais savoir si il est possible de connaitre combien de fois par jour
un requête est exécutée du moins le chemin suivie par la requête.

Et si oui, où puis-je trouver l'information et comment la récupérer.

je suis sous 8i

merci, fab

2 réponses

Avatar
Bruno Jargot
In article <406be3bf$0$9113$,
"Fabien P" wrote:

j'aimerais savoir si il est possible de connaitre combien de fois par jour
un requête est exécutée du moins le chemin suivie par la requête.

Et si oui, où puis-je trouver l'information et comment la récupérer.

je suis sous 8i



Il n'y a pas de méthodes simples.

Le principe d'une éventuelle solution est le suivant :
Les plans d'exécutions des requêtes exécutées sont stockés dans le
cache. Lorsqu'une requête est exécutée plusieurs fois, les exécutions
suivantes utilisent le plan d'exécution calculé la première fois.

En 8i, le plan d'exécution n'est pas accessible (à ma connaissance au
moins) mais les requêtes stockées dans le cache sont accessibles par la
vue v$sqlarea avec des statistiques associées tel que (nombre
d'exécutions, nombre de lecture disques, nombre de lecture dans le
buffer cache, date de la première exécution).

Si le cache est suffisament important, si la requête est exécutéé
régulièrement, on peut remonté assez loin dans le passé.

A noter : seul les 2000 premiers caractères de la requête sont stockés
dans v$sqlarea. La requête complète est accessible dans v$sqltext avec
une jointure sur hash_value et address.

En espérant avoir répondu à la question
Avatar
Fabien P
merci beaucoup, c'est exactement de ca que je parlais.

Fab


"Bruno Jargot" a écrit dans le message de news:

In article <406be3bf$0$9113$,
"Fabien P" wrote:

> j'aimerais savoir si il est possible de connaitre combien de fois par


jour
> un requête est exécutée du moins le chemin suivie par la requête.
>
> Et si oui, où puis-je trouver l'information et comment la récupérer.
>
> je suis sous 8i

Il n'y a pas de méthodes simples.

Le principe d'une éventuelle solution est le suivant :
Les plans d'exécutions des requêtes exécutées sont stockés dans le
cache. Lorsqu'une requête est exécutée plusieurs fois, les exécutions
suivantes utilisent le plan d'exécution calculé la première fois.

En 8i, le plan d'exécution n'est pas accessible (à ma connaissance au
moins) mais les requêtes stockées dans le cache sont accessibles par la
vue v$sqlarea avec des statistiques associées tel que (nombre
d'exécutions, nombre de lecture disques, nombre de lecture dans le
buffer cache, date de la première exécution).

Si le cache est suffisament important, si la requête est exécutéé
régulièrement, on peut remonté assez loin dans le passé.

A noter : seul les 2000 premiers caractères de la requête sont stockés
dans v$sqlarea. La requête complète est accessible dans v$sqltext avec
une jointure sur hash_value et address.

En espérant avoir répondu à la question