Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2012, 15h23   #1
Membre du Club
 
Inscription : septembre 2007
Messages : 117
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 117
Points : 42
Points : 42
Par défaut Ressources utilisées par une requête oracle

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
CoeurDeSQL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 00h40   #2
Rédacteur
 
Inscription : décembre 2002
Messages : 2 389
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 389
Points : 3 276
Points : 3 276
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 !
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/01/2012, 10h44   #3
Membre expérimenté
 
Homme Mohamed Houri
Inscription : mars 2010
Messages : 286
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Houri
Localisation : France

Informations forums :
Inscription : mars 2010
Messages : 286
Points : 562
Points : 562
Pourquoi ne pas exploiter le plan d'exécution généré directement à partir de la mémoire en utilisant dbms_xplan
Code :
1
2
 
SELECT * FROM TABLE(dbms_xplan.display_cursor(NULL,NULL,'ALLSTATS LAST'));
Vous trouverez des exemples vous expliquant comment générer ce plan dans l'article suivant (Malheureusement en anglais):
http://hourim.wordpress.com/2011/12/...-explain-plan/
Code :
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 |       |       |          |
Ici, j'ajoute les remarques suivantes

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)
__________________
Bien Cordialement
www.hourim.wordpress.com
Mohamed.Houri est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h20.


 
 
 
 
Partenaires

Hébergement Web