Bonjour,
Je suis sous Oracle 9i. Je n'arrive pas à comprendre les résultats suivants obtenus suite à un Tkprof sur une trace d'un traitement batch :
On voit que le fecth est répété 516265 fois (Count) et que le nombre de ligne retourné est 516265 (Rows) ma question est la suivante pour l'interprétation :
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 SELECT code FROM dossier WHERE dosid = :b1 call count cpu elapsed disk query current rows ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 516265 7.73 7.72 0 0 0 0 Fetch 516265 4.97 4.89 1123 1548795 0 516265 ------- ------ -------- ---------- ---------- ---------- ---------- total 1032531 12.70 12.61 1123 1548795 0 516265 Rows Row Source Operation ------- --------------------------------------------------- 516265 TABLE ACCESS BY INDEX ROWID DOSSIER 516265 INDEX UNIQUE SCAN PK_DOSSIER
- est ce que je dois comprendre qu'1 fetch me ramène 1 ligne ?
- ou bien chaque fecth me ramène 516265 lignes ?
Mon doute provient de l'explain qui indique également 516265 lignes de retournées... donc je pencherais plus pour la réponse 2...
Si je suis dans le cas 1, mon traitement est très lourd car il parcourt 1548795 query pour récupérer 1 ligne et je dois donc essayer d'améliorer ce traitement.
Si je suis dans le cas 2, mon traitement est pas trop mal puisqu'il parcourt 1548795 query pour ramener 516265 lignes et on voit sur l'explain plan qu'il utilise bien un index...
je vous remercie par avance pour votre aide
Bonne journée
Tux
Partager