IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

AWR SQL_ID CHILD_NUMBER


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 140
    Points : 71
    Points
    71
    Par défaut AWR SQL_ID CHILD_NUMBER
    bonjour
    Le rapport AWR n'affiche que des SQL_ID (dans la section SQL) et non pas le CHILD_NUMBER !!!

    Donc il est impossible de trouver avec certitude le plan d'exécution correspondant au SQL_ID capturé dans l'AWR
    si plusieurs CHILD_NUMBER associés ?

    A ma connaissance un SQL_ID peut avoir plusieurs CHILD_NUMBER et pour chaque couple (SQL_ID , CHILD_NUMBER) peut avoir un plan d'exécution ?
    Que représente le couple (SQL_ID , 0) où child_number=0. Particularité ?
    merci

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut PLAN_HASH_VALUE
    Bonjour,
    Le child number n'a de sens que lorsque le curseur est encore en shared pool, donc pas pour AWR.
    Par contre AWR enregistre le PLAN_HASH_VALUE. On peut le voir dans les rapports awrrepsql.sql
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Donc il est impossible de trouver avec certitude le plan d'exécution correspondant au SQL_ID capturé dans l'AWR
    si plusieurs CHILD_NUMBER associés ?
    Non. Il est possible. Certes avec des restrictions majeures mais il est possible d'avoir les différents plans utilisés par un sql_id capturé dans l'AWR en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     SELECT * FROM TABLE(dbms_xplan.display_awr('&sql_id'));
    Lorsque plusieurs plans d'un même sql_id possèdent la même plan_hash_value cela ne veut pas dire forcément que ce sont des plans identiques. Pour être sûr que les plans sont identiques il faut rechercher la valeur de phv2 en utilisant ce qui suit à titre d'exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT 
           p.sql_id
          ,p.plan_hash_value
          ,t.phv2
    FROM   dba_hist_sql_plan p
          ,xmltable('for $i in /other_xml/info
                     where $i/@type eq "plan_hash_2"
                     return $i'
                     passing xmltype(p.other_xml)
                     columns phv2 number path '/') t
        WHERE p.sql_id = '&sql_id'
        AND   p.other_xml IS NOT NULL
        ;
    Bien Respectueusement
    www.hourim.wordpress.com

    "Ce qui se conçoit bien s'énonce clairement"

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 140
    Points : 71
    Points
    71
    Par défaut
    Quand j'utilise un outil graphique comme pl-sql developer ou SQL developer ou Toad un bouton est en général dédié pour afficher le plan d'une requête.
    A quel child_number correspond le plan affiché par l'outil si plusieurs child_number en mémoire ?

  5. #5
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Ca dépend du bouton. C'est soit qu'il a fait un explain plan (donc pas de cursor), soit c'est le dernier curseur exécuté.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 140
    Points : 71
    Points
    71
    Par défaut
    Bonjour Franck ,
    L'explain plan se base sur quoi au juste pour afficher un plan ? Surtout quand il y a plusieurs plans en mémoire correspondant à la requête ...merci

  7. #7
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    L'explain plan fait lui-même son plan d'exécution. Il peut être différent des plans fait lors de l'exécution (surtout lorsqu'il y a des bind variables).
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  8. #8
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par zidane2012 Voir le message
    ...L'explain plan se base sur quoi au juste pour afficher un plan ? ...
    Sur la commande SQL Explain Plan.

Discussions similaires

  1. [11gR2] sql_id child_number et plan d'exécution
    Par zidane2012 dans le forum Oracle
    Réponses: 4
    Dernier message: 17/10/2013, 22h15
  2. Génération de rapports AWR
    Par agdid04 dans le forum Administration
    Réponses: 2
    Dernier message: 17/12/2008, 18h02
  3. Comment personnaliser AWR ?
    Par moi26 dans le forum Administration
    Réponses: 9
    Dernier message: 03/12/2008, 11h35
  4. demande opinion sur awr vs statpack
    Par ZashOne dans le forum Administration
    Réponses: 2
    Dernier message: 22/10/2007, 22h26
  5. Executions à 0 dans Perfstat et AWR
    Par kervoaz dans le forum Oracle
    Réponses: 1
    Dernier message: 13/09/2007, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo