Chapter 9, page 33 - Cat-Hash-strophes
in the seminar notes. (The page number
may have changed a little).

If you have a plan like this, all the leading
tables have been hashed into memory at
the same time.

HASH JOIN
    TABLE ACCESS (FULL) OF TABLE_4
    HASH JOIN
        TABLE ACCESS (FULL) OF TABLE_3
        HASH JOIN
            TABLE ACCESS (FULL) OF TABLE_2
            TABLE ACCESS (FULL) OF TABLE_1

It is true that Oracle only works out the cost of joining
two objects at a time - but the actual execution can pass
results from stage to step before a step is completed,
just like the NL join.

In this example, the 10053 trace showed (if I recall
correctly):
    calc 1: join t2 to t1 with swap_join_inputs
    calc2: join t3 to result1 with swap_join_inputs
    calc3: join t4 to result2 with swap_join_inputs

Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

  The educated person is not the person
  who can answer the questions, but the
  person who can question the answers -- T. Schick Jr


One-day tutorials:
http://www.jlcomp.demon.co.uk/tutorial.html


Three-day seminar:
see http://www.jlcomp.demon.co.uk/seminar.html
____UK___November


The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html


----- Original Message ----- 
To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]>
Sent: Wednesday, December 31, 2003 12:19 AM


> I've alway understood that joining occurs always in two steps, first two
> tables, then their result (row source) with next table and so on, so
there's
> no need for more than 2 hash tables for example?
>
> Tanel.
>

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Jonathan Lewis
  INET: [EMAIL PROTECTED]

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: [EMAIL PROTECTED] (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).

Reply via email to