re bonjour,
j'ai un autre probleme de performance avec la requête suivante.
Avec jointure classique, ça met 47ms ; avec jointure externe sur gra_dam, ça met 7 secondes.
Mais moi j'aimerai une jointure externe![]()
Ci dessous le plan d'execution avec jointure classique (47 millisecondes):
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 select cdhop, nuagt, pgpmg.INFOS_GAGT.GET_CDGRA(agt.nuagt, '01', to_date( '12/07/2006', 'dd/mm/yyyy'), agt.CDCSA, agt.dtecsa) cdgra, pgpmg.INFOS_GAGT.GET_DTEGRA dtegra, gra.lbegra from gh.gagt agt, gh.ggra gra, pgpmg.grade_dam gra_dam where cdhop='01' and nuagt IN ('020320','020851','041587','019182') and pgpmg.infos_gagt.GET_DTEE ( nuagt,'01', to_date('12/07/2006','dd/mm/yyyy')) is not NULL and gra.cdgra = pgpmg.INFOS_GAGT.GET_CDGRA(agt.nuagt, '01', to_date( '12/07/2006', 'dd/mm/yyyy'), agt.cdgra, agt.dtegra) and gra_dam.oid_thop(+) = 93339 and gra_dam.oid_ggra(+) = gra.oid_ggra
Ci dessous le plan d'execution avec jointure externe (7 secondes):
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 Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop SELECT STATEMENT Hint=RULE CONCATENATION NESTED LOOPS NESTED LOOPS TABLE ACCESS BY INDEX ROWID GAGT INDEX UNIQUE SCAN PKGAGT INDEX RANGE SCAN AK0_GRADE_DAM TABLE ACCESS BY INDEX ROWID GGRA INDEX UNIQUE SCAN PK_GGRA NESTED LOOPS NESTED LOOPS TABLE ACCESS BY INDEX ROWID GAGT INDEX UNIQUE SCAN PKGAGT INDEX RANGE SCAN AK0_GRADE_DAM TABLE ACCESS BY INDEX ROWID GGRA INDEX UNIQUE SCAN PK_GGRA NESTED LOOPS NESTED LOOPS TABLE ACCESS BY INDEX ROWID GAGT INDEX UNIQUE SCAN PKGAGT INDEX RANGE SCAN AK0_GRADE_DAM TABLE ACCESS BY INDEX ROWID GGRA INDEX UNIQUE SCAN PK_GGRA NESTED LOOPS NESTED LOOPS TABLE ACCESS BY INDEX ROWID GAGT INDEX UNIQUE SCAN PKGAGT INDEX RANGE SCAN AK0_GRADE_DAM TABLE ACCESS BY INDEX ROWID GGRA INDEX UNIQUE SCAN PK_GGRA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop SELECT STATEMENT Hint=RULE NESTED LOOPS OUTER NESTED LOOPS TABLE ACCESS BY INDEX ROWID GAGT INDEX RANGE SCAN AK7GAGT TABLE ACCESS BY INDEX ROWID GGRA INDEX RANGE SCAN PKGGRA INDEX UNIQUE SCAN AK0_GRADE_DAM
Partager