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
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
Je ne sais pas où est le paramétrage si il existe, mais dans le sprepins.sql, il y a la ligne
qui limite le nb de ligne de requete à 5
Code : Sélectionner tout - Visualiser dans une fenêtre à part define num_rows_per_hash=5;
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part and st.piece < &&num_rows_per_hash
ç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
non non :
Et le champ piece de stats$sqltext, c'est bien le n° de ligne de la requete.
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
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
ha oui, j'ai confondu avec top_n_sql
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.
Super, merci
Brigitte
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager