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 :

Afficher le plan de requête


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Afficher le plan de requête
    Bonjour,
    pour sauver le plan d’exécution d'une requête en utilisant par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    explain plan for select * from prod;
    et après on peut l'afficher par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select plan_table_output from table(dbms_xplan.display())
    ;
    mais les informations affichées ne suffisent pas, je besoin d'autre information telle que :
    la cardinalités des tuples entrées et sortie pour chaque opération
    Estimé la sélectivité de chaque opération
    le nombre de pages à faire dans la mémoire de chaque opération
    je besoin votre aide SVP
    Cordialement

  2. #2
    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
    Utilisez dbms_xplan.display_cursor et regardez dans la doc en ligne d'Oracle pour les paramètres. Autre source très intéressantes pour c'est la série "Executions plans"

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci pour votre réponse, j'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR);
    mais malgré ça j'ai pas obtenu les informations souhaitées telle que la cardinalité sortie de chaque opération

  4. #4
    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
    Pourtant avec les informations que je vous aie fournies vous aurais dû y arriver.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    Connecté à :
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Real Application Testing option
     
    SQL> set linesize 300
    SQL> set pagesize 0
    SQL> select /*+ gather_plan_statistics*/
            count(*)
      2    3  from    (
      4          select  /*+ no_merge */
      5                  outer.*
      6          from
                    emp outer
      7    8          where
      9                  outer.sal > (
     10                          select  /*+ no_unnest */
     11                                  avg(inner.sal)
     12                          from
     13                                  emp inner
     14                          where
     15                                  inner.deptno = outer.deptno
     16                  )
     17          )
     18  /
             6
     
    SQL> select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'))
      2  /
    SQL_ID  3vyftw7rk74pj, child number 0
    -------------------------------------
    select /*+ gather_plan_statistics*/         count(*) from    (
    select  /*+ no_merge */                 outer.*         from
         emp outer         where                 outer.sal > (
               select  /*+ no_unnest */
    avg(inner.sal)                         from
        emp inner                         where
        inner.deptno = outer.deptno                 )         )
     
    Plan hash value: 149387436
     
    ----------------------------------------------------------------------------------------------------
    | Id  | Operation                       | Name   | Starts | E-Rows | A-Rows |   A-Time   | Buffers |
    ----------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                |        |      1 |        |      1 |00:00:00.01 |       5 |
    |   1 |  SORT AGGREGATE                 |        |      1 |      1 |      1 |00:00:00.01 |       5 |
    |   2 |   VIEW                          |        |      1 |      1 |      6 |00:00:00.01 |       5 |
    |*  3 |    FILTER                       |        |      1 |        |      6 |00:00:00.01 |       5 |
    |   4 |     TABLE ACCESS FULL           | EMP    |      1 |     14 |     14 |00:00:00.01 |       2 |
    |   5 |     SORT AGGREGATE              |        |      3 |      1 |      3 |00:00:00.01 |       3 |
    |   6 |      TABLE ACCESS BY INDEX ROWID| EMP    |      3 |      5 |     14 |00:00:00.01 |       3 |
    |*  7 |       INDEX RANGE SCAN          | IX_EMP |      3 |      5 |     14 |00:00:00.01 |       2 |
    ----------------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       3 - filter("OUTER"."SAL">)
       7 - access("INNER"."DEPTNO"=:B1)
     
     
    31 ligne(s) sélectionnée(s).
     
    SQL>

Discussions similaires

  1. Afficher 'Aucune donnée' quand requête vide
    Par ben250 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 25/09/2007, 18h34
  2. Optimisation de plan de requête
    Par elsuket dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/09/2007, 03h47
  3. [SQL2K5] Plan de requête optimisable ?
    Par elsuket dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/08/2007, 11h33
  4. Réponses: 1
    Dernier message: 08/02/2007, 08h26
  5. [Crystal Report] Champs affichés même si la requête est vide
    Par navis84 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/02/2005, 16h18

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