Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels 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 27/06/2007, 18h36   #1
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 137
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 137
Points : 26
Points : 26
Par défaut Résultat de Tkprof

Bonjour,

L’application de TKPROF sur une session oracle me donne le résultat suivant (voir fichier joint) :

SVP Quelqu’un pourrait m'aider svp à interpreter cette partie

1.C’est qoui le cr ? r ? w ? dans le plan d’execution ?

2.Et je trouve aussi elapsed plus grand cpu est –il normal ? si non qu’est ce que ca pourrait etre ?
3. que signifie le latch free et les enqueue?


Merci de votre aide , j’en ai besoin
Fichiers attachés
Type de fichier : doc trace_TKPROF.doc (25,5 Ko, 5 affichages)
Mehdilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 00h40   #2
Rédacteur
 
Avatar de bouyao
 
Inscription : janvier 2005
Messages : 1 778
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 1 778
Points : 1 857
Points : 1 857
Tu ne donne pas la version Oracle.


Citation:
Envoyé par Mehdilis
1.C’est qoui le cr ? r ? w ? dans le plan d’execution ?
c : Temps Cpu Totale consommé par des appels de la base. En micro-secondes depuis Oracle 9i et en Centieme-secondes avant 9i. (Il faut toujours donner la version Oracle)


cr : Nombres de lectures logiques (lecture depuis le disque)
Nombres de blocs Oracle obtenus depuis le buffer cache dans un mode logique.

r : nombres de lignes retournées ou c'est plutôt le nombre de bloc oracle lu avec les appels de lecture OS.

w : Nombre de blocs oracle écrit par des appels de lecture OS.

Citation:
Envoyé par Mehdilis
2.Et je trouve aussi elapsed plus grand cpu est –il normal ? si non qu’est ce que ca pourrait etre ?
C'est normal, tu attend sans rien faire suite a un blocage (enqueue)
par exemple : tu attend un bus pendant 15 mn et utilise ton cerveau pendant 5mn. Tu a passé 15 mn a attendre (elapsed) et tu utilisé ton cerveau 2 mn (cpu).


Citation:
Envoyé par Mehdilis
3. que signifie le latch free et les enqueue?
Pour les latchs essaye de voir le tutoriel de jaouad.

Un Latch est un mecanisme interne à oracle utilisé pour protéger les access simultanés au structures de données dans la memoire SGA. Il protege le tampon memoire comme le verrou protege les lignes d'une table. Il est implementé par des instructions atomiques materiel comme TEST-AND-SET, COMPARE-AND-SWAP et LOAD-LOCK-STORE. Les latch sont plus restrectives que les verrous et ils sont toujours exclusives. Les Latchs ne sont jamais mis en file d'attente, mais il font des rotations (spin) ou il dorent jusqu'il obtient la ressource, ou un timeout.

Pour les Enqueues


ENQUEUE est un mécanisme de verrous très sophistiqué qui consiste à gérer les accées au ressources partagés , comme les tables, les transactions. Normalement il est utilisé pour éviter que plusieurs processes accedent à la même structure de données en même temps, ou pour autoriser les sessions à partager la même ressource quand leurs modes de verrous sont compatibles . Quand une session demande un verrou sur une partie ou sur la totalité de l'objet, et si le verrou demandé est incompatible avec le mode detenu par une autre session, la session qui demande le verrou met sa demande dans une file d'attente (enqueue) et attends d'être servis. Cette attente est connus sous le nom enqueue wait.

On peut associer un Enqueue à une session ou à une transaction et non pas à un processus, et il est souvent synonyme au mots LOCK (verrou).

Un verrou enqueue est lui même un verrou. Oracle utilise un tableau distinct du ressources enqueue pour gérer les verrous enqueue.Cette strcture peut être vu dans la vue X$KSQEQ (kernel service enqueue object) ou dans la vue V$ENQUEUE_LOCK. Le nombre totale de lignes dans la table de verrous est determiné par le parametre caché _ENQUEUE_LOCKS.

(Attention: la signification des enqueues depends de la versibn oracle 9i ou 10g)

Ca donne quoi ?
Code :
1
2
 
SQL> SELECT * FROM v$enqueue_lock;
En faisant une recherche sur le forum, tu trouvera un script pour trouver l'enqueue qui cause cet attente.

Conclusion : La majorité des cas ca vien d'un parametre de ta table, si je ne me trompe pas, c'est initrans qui est a 1, il faut l'augmenter a 2 ou a 3.

Essaye de comprendre mon article inachevé : http://mbouayoun.developpez.com/reglredo/#LV
bouyao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 09h11   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
note que le enqueue peut être un simple lock : SELECT FOR UPDATE ou mises à jour concurrentes de ligne
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h44.


 
 
 
 
Partenaires

Hébergement Web