Database Reference
In-Depth Information
SQL> set autotrace on exp stat
SQL> select jl.ast_id_fk
2 , jl.anlass_id
3 , jlaf.Anzahl_tage_vor_ereignis
4 , jlaf.Anzahl_tage_nach_ereignis
5 , jl.anlass_id
6 -- , jla.anlass_id
7 from MBS_FACHTEST_BLAU.jl_jobliste jl
8 , MBS_FACHTEST_BLAU.jla_jl_Anlasstypen jla
9 , MBS_FACHTEST_BLAU.jlaf_jla_fristen jlaf
10 where jl.anlass_id = jla.anlass_id -- JL - JLA
11 and jla.jla_id = jlaf.jla_id_fk -- JLA - JLAF
12 and jlaf.AKTIVE_ANSPRACHE = 1 --
13 and jl.ast_id_fk is not null
14 and jlaf.KANAL = '1'
15 and jl.Anlass_id = 'WIRD_16_OHNE_BSPV_ICF_INFO'
16 order by jl.ast_id_fk, jl.anlass_id
17 ;
240 Zeilen ausgewählt.
Ausführungsplan
----------------------------------------------------------
Plan hash value: 2613169178
--------------------------------------------------------------------------------
------------------
| Id | Operation | Name | Rows | Bytes | Cost
(%CPU)| Time |
--------------------------------------------------------------------------------
------------------
| 0 | SELECT STATEMENT | | 76 | 3192 | 17
(6)| 00:00:01 |
| 1 | SORT ORDER BY | | 76 | 3192 | 17
(6)| 00:00:01 |
| 2 | MERGE JOIN CARTESIAN | | 76 | 3192 | 16
(0)| 00:00:01 |
|* 3 | TABLE ACCESS BY INDEX ROWID| JL_JOBLISTE | 11 | 275 | 2
(0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | IND_JL_ANLASS | 11 | | 1
(0)| 00:00:01 |
| 5 | BUFFER SORT | | 7 | 119 | 15
(7)| 00:00:01 |
|* 6 | TABLE ACCESS FULL | JLAF_JLA_FRISTEN | 7 | 119 | 1
(0)| 00:00:01 |
--------------------------------------------------------------------------------
------------------
Ich habe bemerkt, dass dieser Ausführungsplan einen Join von 2 Tabellen beinhaltet, wo-
bei im jeweiligen Select 3 Tabellen beteiligt sind. Aus diesem Grund habe ich vermutet,
dass Oracle eine Tabelle einfach „wegoptimiert“ hat.
Diese Optimierung heißt bei Oracle „join elimination“ und wird mit dem Parame-
ter _ optimizer _ join _ elimination _ enabled gesteuert. Ich habe den Kunden gebeten, einen
Test mit der Parametereinstellung _ optimizer _ join _ elimination _ enabled = false auszufüh-
ren. Zugleich habe ich in MOS nach einem bekannten Problem gesucht und sofort einen
verdächtigen Bug gefunden. Alle Symptome dieses Bug haben exzellent zu dem obigen
Problem gepasst. Der Workaround mit der Parametereinstellung _ optimizer _ join _ elimi -
nation _ enabled = false hat auch das richtige Ergebnis gebracht. Die ganze Analyse hat be-
stimmt nicht länger als 15 min gedauert.
Search WWH ::




Custom Search