Bonsoir,
J'ai une même requête qui a des temps d'exécution différents.
Au début la réponse est immédiate puis si je la lance plusieurs fois de suite elle prend plusieurs minutes.
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 Voici ce que l’on obtient alors que le temps de réponse est normal (voire immédiat) Plan d'exécution ---------------------------------------------------------- Plan hash value: 626068950 ------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 1 | 7 | 246 (2)| 00:00:03 | | 1 | SORT ORDER BY | | 1 | 7 | 246 (2)| 00:00:03 | | 2 | VIEW | VM_NWVW_2 | 1 | 7 | 246 (2)| 00:00:03 | ? | 3 | HASH UNIQUE | | 1 | 70 | 246 (2)| 00:00:03 | | 4 | NESTED LOOPS | | 3 | 210 | 245 (2)| 00:00:03 | | 5 | NESTED LOOPS | | 3 | 174 | 245 (2)| 00:00:03 | |* 6 | TABLE ACCESS FULL | PARTICIPER | 4 | 108 | 241 (2)| 00:00:03 | |* 7 | TABLE ACCESS BY INDEX ROWID| ADHERENT | 1 | 31 | 1 (0)| 00:00:01 | |* 8 | INDEX UNIQUE SCAN | PK_ADHERENT | 1 | | 0 (0)| 00:00:01 | |* 9 | INDEX UNIQUE SCAN | PK_AGPRDTVA | 1 | 12 | 0 (0)| 00:00:01 | ------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 6 - filter(NVL("FL_FACTURE",0)=0 AND SUBSTR("ESS_ID",1,2)=SUBSTR(TO_CHAR(2015,'9999') ,4,2) AND NVL("FL_CALENDAR",0)=1 AND NVL("FL_DESINSCRIPTION",0)=0) 7 - filter(NVL("ADHE_CLOTURE",0)=0 AND "TARI_TYPE_FACT"<>'NONE') 8 - access("ADHE_ID"=DECODE("FL_FACTCONS",1,"GET_CONSO_ADHERENT"("PARTICIPER"."ADHE_I D"),"PARTICIPER"."ADHE_ID")) 9 - access("AGPRDTVA"."PRDT_PROD"='P' AND "AGPRDTVA"."PRDT_PAYS"="PAYS_ID") Statistiques ---------------------------------------------------------- 332 recursive calls 0 db block gets 1747 consistent gets 0 physical reads 0 redo size 437 bytes sent via SQL*Net to client 349 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 8 rows processedJe ne comprends pas :
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 Voici ce que l’on obtient alors que le temps de réponse est anormalement long (env 2 min voire plus) Cela se produit en général lors de la 3ème ou 4ème exécution de la requête. Plan d'exécution ---------------------------------------------------------- Plan hash value: 626068950 ------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 1 | 7 | 246 (2)| 00:00:03 | | 1 | SORT ORDER BY | | 1 | 7 | 246 (2)| 00:00:03 | | 2 | VIEW | VM_NWVW_2 | 1 | 7 | 246 (2)| 00:00:03 | ? | 3 | HASH UNIQUE | | 1 | 70 | 246 (2)| 00:00:03 | | 4 | NESTED LOOPS | | 3 | 210 | 245 (2)| 00:00:03 | | 5 | NESTED LOOPS | | 3 | 174 | 245 (2)| 00:00:03 | |* 6 | TABLE ACCESS FULL | PARTICIPER | 4 | 108 | 241 (2)| 00:00:03 | |* 7 | TABLE ACCESS BY INDEX ROWID| ADHERENT | 1 | 31 | 1 (0)| 00:00:01 | |* 8 | INDEX UNIQUE SCAN | PK_ADHERENT | 1 | | 0 (0)| 00:00:01 | |* 9 | INDEX UNIQUE SCAN | PK_AGPRDTVA | 1 | 12 | 0 (0)| 00:00:01 | ------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 6 - filter(NVL("FL_FACTURE",0)=0 AND SUBSTR("ESS_ID",1,2)=SUBSTR(TO_CHAR(2015,'9999') ,4,2) AND NVL("FL_CALENDAR",0)=1 AND NVL("FL_DESINSCRIPTION",0)=0) 7 - filter(NVL("ADHE_CLOTURE",0)=0 AND "TARI_TYPE_FACT"<>'NONE') 8 - access("ADHE_ID"=DECODE("FL_FACTCONS",1,"GET_CONSO_ADHERENT"("PARTICIPER"."ADHE_I D"),"PARTICIPER"."ADHE_ID")) 9 - access("AGPRDTVA"."PRDT_PROD"='P' AND "AGPRDTVA"."PRDT_PAYS"="PAYS_ID") Statistiques ---------------------------------------------------------- 643120 recursive calls 0 db block gets 3069812 consistent gets 0 physical reads 0 redo size 437 bytes sent via SQL*Net to client 349 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 8 rows processed
- à quoi correspond la vue VM_NWVW_2 ?
- que le coût et la durée entre les deux plans d'exécution sont les mêmes alors que dans la réalité le 2ème résultat est beaucoup plus long ?
- à quoi correspond recursive calls et consistent gets et pourquoi ils explosent entre les deux plans d'exécution ?
Merci d'avance pour vos éclairages et vos pistes de recherche.
Partager