Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Query optimization

Query optimization

From: Krishnaswamy, Ranganath <Ranganath.Krishnaswamy_at_blr.hpsglobal.com>
Date: Thu, 09 Jan 2003 06:39:41 -0800
Message-ID: <F001.0052B282.20030109063941@fatcity.com>


Hi List,

I have the below query:

select F1.AMTLICHESKENNZEICHEN AMTLICHESKENNZEICHEN
, F1.OID
, F1.VERKAUFSBEZEICHNUNG
, B1.FAHRZEUGARTTEXT
, B1.FAHRZEUGHERSTELLERTEXT
, B1.FAHRZEUGTYPTEXT
, B1.FIN
, B1.VERKAUFSBEZEICHNUNG
, H1.AUFTRAGSPOSITIONSNR
, H1.DATUMSTR
, H1.OID
, H1.PRODUKT
, H1.VORGANGSNUMMER
, 'Stamm' SOURCE

from ZPAB.FAHRZEUG F1
, ZPAB.FZGBRIEF B1
, ZPAB.HISTORIE H1

where F1.FZGBRIEF = B1.OID
  AND F1.OID = H1.MYTECHOBJEKT(+)
  AND ((H1.produkt, TO_DATE(H1.DATUMSTR, 'YYYY-MM-DD'))

         IN (select
               ZPAB.HISTORIE.produkt 
               , TO_DATE(MAX(ZPAB.historie.DATUMSTR), 'yyyy-mm-dd') 
             from ZPAB.historie 
               , ZPAB.FAHRZEUG 
             WHERE ZPAB.FAHRZEUG.OID = ZPAB.historie.MYTECHOBJEKT 
               AND ZPAB.FAHRZEUG.OID = F1.OID 
               AND ZPAB.historie.PRODUKT 
                 IN ('HU', 'AU', 'SP', 'HUPlus', 'GGVS', 'P193', 'P21' 
                    , 'UVVFahrzeuganbau', 'Ersat
zplakette', 'SOL') 
             group by ZPAB.historie.produkt) 
       OR H1.PRODUKT IN ('StandardGutachten', 'SchadenGutachten' 
                         , 'BewertungZustandspruefung' 
                         , 'MagBewertungZustandspruefung',
'Transportschadenbericht'
                         , 'Reparaturpruefung' 
                         , 'Rechnungspruefungsbericht' 
                         , 'Reparaturpruefungsbericht', 
                         'FzgSchadenguta
chten', 'Hagelschadenbericht', 'Massenschadenbericht', 'Kalkulationsbericht ', 'Schadenbericht', 'Bericht', 'DekraSiegel', 'NfzSchadenGutachten'
                         , 'HypoWB
WGutachten', 'MagGutachten', 'MagBewertung', 'Bewertung') 
       OR F1.OID NOT IN (SELECT ZPAB.FAHRZEUG.OID 
                         FROM ZPAB.FAHRZEUG 
                           , ZPAB.HISTORIE 
                         WHERE ZPAB.FAHRZEUG.OID =
ZPAB.historie.MYTECHOBJEKT))
  AND (F1.AMTLICHESKENNZEICHEN
       LIKE 'DD%')
  AND rownum <= 10

Here is the explain plan for the query:

Execution Plan


   0 SELECT STATEMENT Optimizer=CHOOSE    1 0 COUNT (STOPKEY)

   2    1     FILTER
   3    2       NESTED LOOPS (OUTER)
   4    3         NESTED LOOPS
   5    4           TABLE ACCESS (BY INDEX ROWID) OF 'FAHRZEUG'
   6    5             INDEX (RANGE SCAN) OF 'I_FAHRZEUG_1' (NON-UNIQUE
          )

   7    4           TABLE ACCESS (BY INDEX ROWID) OF 'FZGBRIEF'
   8    7             INDEX (UNIQUE SCAN) OF 'PK_FZGBRIEF' (UNIQUE)
   9    3         TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  10    9           INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NON-UNIQUE
          )

  11    2       FILTER
  12   11         SORT (GROUP BY)
  13   12           CONCATENATION
  14   13             NESTED LOOPS
  15   14               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  16   14               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  17   16                 AND-EQUAL
  18   17                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  19   17                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  20   13             NESTED LOOPS
  21   20               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  22   20               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  23   22                 AND-EQUAL
  24   23                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  25   23                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  26   13             NESTED LOOPS
  27   26               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  28   26               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  29   28                 AND-EQUAL
  30   29                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  31   29                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  32   13             NESTED LOOPS
  33   32               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  34   32               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  35   34                 AND-EQUAL
  36   35                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  37   35                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  38   13             NESTED LOOPS
  39   38               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  40   38               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  41   40                 AND-EQUAL
  42   41                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  43   41                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  44   13             NESTED LOOPS
  45   44               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  46   44               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  47   46                 AND-EQUAL
  48   47                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  49   47                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  50   13             NESTED LOOPS
  51   50               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  52   50               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  53   52                 AND-EQUAL
  54   53                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  55   53                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  56   13             NESTED LOOPS
  57   56               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  58   56               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  59   58                 AND-EQUAL
  60   59                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  61   59                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  62   13             NESTED LOOPS
  63   62               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  64   62               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  65   64                 AND-EQUAL
  66   65                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  67   65                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  68   13             NESTED LOOPS
  69   68               INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)
  70   68               TABLE ACCESS (BY INDEX ROWID) OF 'HISTORIE'
  71   70                 AND-EQUAL
  72   71                   INDEX (RANGE SCAN) OF 'I_PRODUKT' (NON-UNI
          QUE)

  73   71                   INDEX (RANGE SCAN) OF 'I_MYTECHOBJEKT' (NO
          N-UNIQUE)

  74    2       NESTED LOOPS
  75   74         TABLE ACCESS (FULL) OF 'HISTORIE'
  76   74         INDEX (UNIQUE SCAN) OF 'PK_FAHRZEUG' (UNIQUE)

	Total reocrds in the Fahrzeug table : 757635

	Total reocrds in the Historie table : 350

	The query takes approximately 11721 ms to execute.  Is there any way
I can optimize the above query?  Any help in this regard is 
	very much appreciated.

	Thanks and Regards,

	Ranganath


WARNING: The information in this message is confidential and may be legally privileged. It is intended solely for the addressee. Access to this message by anyone else is unauthorised. If you are not the intended recipient, any disclosure, copying, or distribution of the message, or any action or omission taken by you in reliance on it, is prohibited and may be unlawful. Please immediately contact the sender if you have received this message in error. Thank you.

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Krishnaswamy, Ranganath
  INET: Ranganath.Krishnaswamy_at_blr.hpsglobal.com

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Thu Jan 09 2003 - 08:39:41 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US