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
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
Partager