Bonjour
Sur oracle 11g, je voulais savoir si on pouvait afficher par requête les ressources utilisées (en terme mémoire notamment) par une grosse requête oracle (lancée par un user de la base).
Merci
Bonjour
Sur oracle 11g, je voulais savoir si on pouvait afficher par requête les ressources utilisées (en terme mémoire notamment) par une grosse requête oracle (lancée par un user de la base).
Merci
Il y a pas mal d'informations dans V$SQLAREA par exemple, mais guère sur les aspects mémoire.
Pour cela, c'est dans doute dans V$SESSTAT que vous trouverez votre bonheur (à mettre en jointure avec V$STATNAME, et filtrer sur NAME LIKE '%memory%).
Il faudrait prendre ces mesures avant et après l'exécution de la requête.
Mais une explication plus précise de ce que vous cherchez sera bienvenue !
Pourquoi ne pas exploiter le plan d'exécution généré directement à partir de la mémoire en utilisant dbms_xplan
Vous trouverez des exemples vous expliquant comment générer ce plan dans l'article suivant (Malheureusement en anglais):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));
Ici, j'ajoute les remarques suivantes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | OMem | 1Mem | Used-Mem | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 1 | SORT UNIQUE | | 1 | 2 | 3494 |00:00:04.27 | 56662 | 1470 | 549K| 457K| 487K (0)| | 2 | UNION-ALL | | 1 | | 3497 |00:00:04.25 | 56662 | 1470 | | | | |* 3 | FILTER | | 1 | | 3482 |00:00:04.22 | 56270 | 1470 | | | | |* 4 | FILTER | | 1 | | 4309 |00:00:04.21 | 55453 | 1470 | | | | |* 5 | TABLE ACCESS BY INDEX ROWID | XXX_TABLE_1 | 1 | 1 | 4309 |00:00:04.20 | 55453 | 1470 | | | | | 6 | NESTED LOOPS | | 1 | 1 | 34473 |00:00:04.15 | 46835 | 1470 | | | | | 7 | NESTED LOOPS OUTER | | 1 | 1 | 4309 |00:00:04.10 | 42524 | 1470 | | | | | 8 | NESTED LOOPS OUTER | | 1 | 1 | 4309 |00:00:04.03 | 33214 | 1470 | | | | | 9 | NESTED LOOPS OUTER | | 1 | 1 | 4309 |00:00:03.96 | 23549 | 1470 | | | | |* 10 | HASH JOIN OUTER | | 1 | 1 | 3482 |00:00:03.88 | 15652 | 1466 | 1023K| 1023K| 1382K (0)| | 11 | NESTED LOOPS | | 1 | 1 | 3482 |00:00:03.85 | 15520 | 1466 | | | |
Statistiques I/O
- Buffers ---> Le nombre de lectures logiques "logical read" faites durant l'exécution de l'opération.
- Reads ---> Le nombre de lectures physiques "physical reads" faites durant l'exécution de l'opération.
- Writes ---> le nombre d'écritures physiques "physical writes" faites durant l'exécution de l'opération.
Statistique de l'Utilisation de la mémoire
- OMem ---> Le montant estimé de la mémoire pour une exécution optimale
- 1Mem ---> Le montant estimé de la mémoire pour une exécution en un seul passage (un seul accès suffit).
- O/1/M ---> Le nombre de fois où l'exécution a été faite soit en Optimal/one(1)-pass/Multipass mode (en un seul accès/en plusieurs accès).
- Used-Mem ---> La valeur de la mémoire réellement utilisée par l'opération lors de sa dernière exécution
- Used-Tmp ---> La valeur de l'espace disque temporaire utilisé par l'opération lors de sa dernière exécution (attention 487K veut dire 487MB)
- Max-Tmp ---> La valeur maximale de l'espace disque temporaire utilisé par l'opération (attention 487K veut dire 487MB)
Partager