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: Hash join order

Re: Hash join order

From: Connor McDonald <connor_mcdonald_at_yahoo.com>
Date: Fri, 28 Mar 2003 09:08:38 +0800
Message-ID: <3E83A096.1627@yahoo.com>


Richard Kuhler wrote:
>
> Is there a significance to the order in which objects are listed in an
> execution plan for a HASH JOIN. For example, are these two plans really
> different ...
>
> SELECT STATEMENT
> HASH JOIN
> TABLE ACCESS (FULL) OF 'TABLE_A'
> TABLE ACCESS (FULL) OF 'TABLE_B'
>
> SELECT STATEMENT
> HASH JOIN
> TABLE ACCESS (FULL) OF 'TABLE_B'
> TABLE ACCESS (FULL) OF 'TABLE_A'
>
> Is this indicating which table will actually have the hash produced and
> which will be iterated through? If so, how can you force the order in
> situations where you are hash joining a table and a partial result (two
> tables joined first before the hash)? For example, I want to be able to
> switch between plans like this but can't seem to do it ...
>
> SELECT STATEMENT
> HASH JOIN
> TABLE ACCESS (FULL) OF 'TABLE_A'
> NESTED LOOPS
> TABLE ACCESS (FULL) OF 'TABLE_B'
> TABLE ACCESS (BY INDEX ROWID) OF 'TABLE_C'
> INDEX (UNIQUE SCAN) OF 'TABLE_C_IDX'
>
> SELECT STATEMENT
> HASH JOIN
> NESTED LOOPS
> TABLE ACCESS (FULL) OF 'TABLE_B'
> TABLE ACCESS (BY INDEX ROWID) OF 'TABLE_C'
> INDEX (UNIQUE SCAN) OF 'TABLE_C_IDX'
> TABLE ACCESS (FULL) OF 'TABLE_A'
>
> Thanks in advance for the help.
>
> Thanks,
> Richard Kuhler

Yes there is a difference, you might wish to look at the ORDERED hint.

hth
connor

-- 
=========================
Connor McDonald
http://www.oracledba.co.uk

"Some days you're the pigeon, some days you're the statue"
Received on Thu Mar 27 2003 - 19:08:38 CST

Original text of this message

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