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

Home -> Community -> Usenet -> c.d.o.server -> Re: EXPLAIN PLAN madness!

Re: EXPLAIN PLAN madness!

From: Ed Stevens <Ed_Stevens_at_nospam.noway.nohow>
Date: Fri, 16 Nov 2001 19:30:12 GMT
Message-ID: <3bf56889.80903903@ausnews.austin.ibm.com>


On Fri, 16 Nov 2001 09:49:54 GMT, nsouto_at_optushome.com.au.nospam (Nuno Souto) wrote:

>In a sudden spasm of awareness,
>Ed Stevens doodled thusly:
>
>>
>>On both databases we find:
>> hash_area_size = 0
>> hash_join_enabled = true
>> hash_multiblock_io_count = 1
>>these are defaulted values, there is no mention of them in the
>>init.ora files. How about differences in some memory spec in the SGA?
>>
>
>block sizes different?
>
>Also, db_multiblock_read-size (or whatever its spelling is nowadays)
>makes a huge diff. So does sort_area-size and its relationship to
>other parameters such as temp tablespace extents and such. I've found
>all of those make a difference in the darn thing selecting hash joins
>or not.
>
>Because of these "undocumented" consistencies, I've now taken to
>disable the hash joins unless I absolutely have to have them. Too
>dangerous otherwise.
>
>
>Cheers
>Nuno Souto
>nsouto_at_optushome.com.au.nospam

Well, sometimes my awareness comes in spasms. Other times it simply oozes in at an excrutiatingly slow pace . .. . ;-)

Differences in sort_area parms seemed to be the difference (see my reply to Mark Townsend for more detail.) I'm curious about your desire to avoid hash joins. What is the problem with them? Below are the two plans (before I got the two databases to perform the same). As you can see, the one with the hash joins is far cheaper than the ones without . . . .

(Sorry about the line wrap . . )

OPERATION                 OPTIONS         OBJECT NAME   ORDER        OPT

------------------------- ---------------
---------------------------------------------- ------------ ------           
 SELECT STATEMENT                         COST = 5777
0-0-5777     CHOOSE             
SORT                    UNIQUE
1-0-1                         
   HASH JOIN              OUTER
2-1-1                         
    HASH JOIN             OUTER
3-2-1                         
     HASH JOIN            OUTER
4-3-1                         
      HASH JOIN           OUTER
5-4-1                         
       FILTER
6-5-1                         
        HASH JOIN         OUTER
7-6-1                         
         HASH JOIN
8-7-1                         
          TABLE ACCESS    FULL            NPP_REQUISITION
9-8-1        ANALYZ           
          REMOTE
10-8-2                        
         TABLE ACCESS     FULL            NPP_PURCHASE_ORDER
11-7-2       ANALYZ           
       TABLE ACCESS       FULL            NPP_REQUEST_FOR_QUOTE
12-5-2       ANALYZ           
      REMOTE
13-4-2                        
     REMOTE
14-3-2                        
    TABLE ACCESS          FULL            NPP_QUOTE
15-2-2       ANALYZ           

16 rows selected.

OPERATION                 OPTIONS         OBJECT NAME
ORDER        OPT              
------------------------- ---------------
----------------------------------------------- ------------ ------           
 SELECT STATEMENT                         COST = 12905
0-0-12905    CHOOSE           
  SORT                    UNIQUE
1-0-1                         
   CONCATENATION
2-1-1                         
    NESTED LOOPS          OUTER
3-2-1                         
     NESTED LOOPS         OUTER
4-3-1                         
      NESTED LOOPS        OUTER
5-4-1                         
       NESTED LOOPS       OUTER
6-5-1                         
        NESTED LOOPS      OUTER
7-6-1                         
         NESTED LOOPS
8-7-1                         
          TABLE ACCESS    FULL            NPP_REQUISITION
9-8-1        ANALYZ           
          REMOTE
10-8-2                        
         REMOTE
11-7-2                        
        REMOTE
12-6-2                        
       TABLE ACCESS       BY INDEX ROWID  NPP_REQUEST_FOR_QUOTE
13-5-2       ANALYZ           
        INDEX             UNIQUE SCAN     NPRFQ_IDX1
14-13-1      ANALYZ           
      TABLE ACCESS        BY INDEX ROWID  NPP_PURCHASE_ORDER
15-4-2       ANALYZ           
       INDEX              UNIQUE SCAN     NPPO_IDX1
16-15-1      ANALYZ           
     INDEX                RANGE SCAN      NPQTE_IDX1
17-3-2       ANALYZ           
    NESTED LOOPS          OUTER
18-2-2                        
     FILTER
19-18-1                       
      NESTED LOOPS        OUTER
20-19-1                       
       NESTED LOOPS       OUTER
21-20-1                       
        NESTED LOOPS      OUTER
22-21-1                       
         NESTED LOOPS     OUTER
23-22-1                       
          NESTED LOOPS
24-23-1                       
           TABLE ACCESS   FULL            NPP_REQUISITION
25-24-1      ANALYZ           
           REMOTE
26-24-2                       
          REMOTE
27-23-2                       
         REMOTE
28-22-2                       
        TABLE ACCESS      BY INDEX ROWID  NPP_REQUEST_FOR_QUOTE
29-21-2      ANALYZ           
         INDEX            UNIQUE SCAN     NPRFQ_IDX1
30-29-1      ANALYZ           
       TABLE ACCESS       BY INDEX ROWID  NPP_PURCHASE_ORDER
31-20-2      ANALYZ           
        INDEX             UNIQUE SCAN     NPPO_IDX1
32-31-1      ANALYZ           
     INDEX                RANGE SCAN      NPQTE_IDX1
33-18-2      ANALYZ           

34 rows selected.

--
Ed Stevens
(Opinions expressed do not necessarily represent those of my employer.)
Received on Fri Nov 16 2001 - 13:30:12 CST

Original text of this message

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