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

Outils Oracle Discussion :

Requêtes tronquées dans Statpack


Sujet :

Outils Oracle

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 93
    Points : 41
    Points
    41
    Par défaut Requêtes tronquées dans Statpack
    Bonjour,

    Les ordres SQL sont tronqués, n’y a t‘il pas un moyen d’avoir les ordres complets dans statpack.

    Merci

    Bonne journée

    Brigitte

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Je ne sais pas où est le paramétrage si il existe, mais dans le sprepins.sql, il y a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define num_rows_per_hash=5;
    qui limite le nb de ligne de requete à 5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    and st.piece             < &&num_rows_per_hash
    Si tu modifies juste la ligne du define pour mettre 99 (par exemple) ça devrait être mieux, parce que la table STATS$SQLTEXT contient tout le sql_text.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ça c'est le nombre de requête... pour la taille des requêtes il me semble que c'est une limitation de la table de statpack elle-même

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    non non :
    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
    select aa, hv
      from ( select /*+ ordered use_nl (b st) */
              decode( st.piece
                    , 0
                    , lpad(to_char((e.buffer_gets - nvl(b.buffer_gets,0))
                                   ,'99,999,999,999')
                          ,15)||' '||
                      lpad(to_char((e.executions - nvl(b.executions,0))
                                  ,'999,999,999')
                          ,12)||' '||
                      lpad((to_char(decode(e.executions - nvl(b.executions,0)
                                         ,0, to_number(null)
                                         ,(e.buffer_gets - nvl(b.buffer_gets,0)) /
                                          (e.executions - nvl(b.executions,0)))
                                   ,'999,999,990.0'))
                          ,14) ||' '||
                      lpad((to_char(100*(e.buffer_gets - nvl(b.buffer_gets,0))/:gets
                                   ,'990.0'))
                          , 6) ||' '||
                      lpad(  nvl(to_char(  (e.cpu_time - nvl(b.cpu_time,0))/1000000
                                       , '9990.00')
                           , ' '),8) || ' ' ||
                      lpad(  nvl(to_char(  (e.elapsed_time - nvl(b.elapsed_time,0))/1000000
                                       , '99990.00')
                           , ' '),9) || ' ' ||
                      lpad(e.hash_value,10)||''||
                      decode(e.module,null,st.sql_text
                                          ,rpad('Module: '||e.module,80)||st.sql_text)
                    , st.sql_text) aa
              , e.hash_value hv
           from stats$sql_summary e
              , stats$sql_summary b
              , stats$sqltext     st 
          where b.snap_id(+)         = :bid
            and b.dbid(+)            = e.dbid
            and b.instance_number(+) = e.instance_number
            and b.hash_value(+)      = e.hash_value
            and b.address(+)         = e.address
            and b.text_subset(+)     = e.text_subset
            and e.snap_id            = :eid
            and e.dbid               = :dbid
            and e.instance_number    = :inst_num
            and e.hash_value         = st.hash_value 
            and e.text_subset        = st.text_subset
            and st.piece             < &&num_rows_per_hash
            and e.executions         > nvl(b.executions,0)
          order by (e.buffer_gets - nvl(b.buffer_gets,0)) desc, e.hash_value, st.piece
          )
    where rownum < &&top_n_sql
    Et le champ piece de stats$sqltext, c'est bien le n° de ligne de la requete.


    Bon, j'avais pas vu que le rownum inclue le nb de pièce

    define top_n_sql = 65;
    define num_rows_per_hash = 5;

    Donc ça veut dire qu'il y a 64 lignes de ramenées.
    Si chaque ordre sql contient 5 lignes, on ramène 12 ordres à 5 lignes et 1 ordre à 4.

    Si on augmente num_rows_per_hash, faut augmenter en conséquence top_n_sql .

    Je vérifie ça et je reviens
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ha oui, j'ai confondu avec top_n_sql

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Donc, après tests : c'est bien ça

    num_rows_per_hash : nb max de lignes par requete
    top_n_sql : nb total de lignes de requetes.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 93
    Points : 41
    Points
    41
    Par défaut statpack
    Super, merci

    Brigitte

  8. #8
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Ben, de rien, ça m'a permis de savoir qu'on pouvait le faire
    Ca m'ennuyait aussi, et j'avais pas eu le temps de chercher.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chaîne tronquée dans une requête INSERT
    Par edblv dans le forum Requêtes
    Réponses: 20
    Dernier message: 20/01/2010, 16h54
  2. [SQL SERVER 2K]Champ tronqué dans une requête.
    Par MeHo_ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/10/2009, 11h18
  3. IIF sur Mémo dans une requête tronqué dans VBA
    Par lemat dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/09/2007, 13h55
  4. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58
  5. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11

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