|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 137 ![]() |
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 |
|
|
00
|
|
|
#2 | |||
![]() Inscription : janvier 2005 Messages : 1 778 ![]() |
Tu ne donne pas la version Oracle.
Citation:
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:
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:
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 ? 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
__________________
Questionnaires : Testez vos connaissances Mes articles : Les Fichiers Redo / SCN : System Change Number / Fichier de Contrôle : Administration |
|||
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
note que le enqueue peut être un simple lock : SELECT FOR UPDATE ou mises à jour concurrentes de ligne
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com