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

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Fav. Urban Legend...

Re: Fav. Urban Legend...

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Sat, 16 Mar 2002 06:58:20 -0800
Message-ID: <F001.0042B663.20020316065820@fatcity.com>

Another comment that Gaja made in his note was that he didn't like using underscore parameters such as

    _unnest_subquery = true.

especially since you can't be sure of the impact of using a 'functionality' hint globally. And I totally agree - particularly in this case where we know that unnesting can make the performacne worse, and we can't know whether, in its version 8 form, the parameter forces unnesting unconditionally even when the optimizer would otherwise cost against it.

However - the fact that the parameter is there reminded me that Oracle 9 has a hint UNNEST - so I thought I'd check if Oracle 8 has got it as well. It isn't in my 8.1.5 manuals, (anyone care to check the 8.1.7 for me) but it's there and it works.

So - when you get to that tricky query which looks as if it could be unnested, but you can't quite figure out how, maybe all you need to do is turn:

    select
    from
    where

                 ..... (select colx 
                          from ....
                        where ...
                )

into

    select
    from
    where

                 ..... (select /*+ unnest */ colx 
                          from ....
                        where ...
                )

and if Oracle can unnest the query, Oracle will unnest the query; for example, in the case of the SQL Gaja's used in paper, the subquery SQL will produce an execution
plan matching the join SQL, with a line

        VW_SQ_1
as one of the 'tables' in the hash join.

(Actually Oracle 8.1.7 will do this for some subquery operations without the
hint - but so far none of the ones I've seen it in are correlated subqueries)

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

Next Seminar - UK, April 3rd - 5th
http://www.jlcomp.demon.co.uk/seminar.html

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

Author of:
Practical Oracle 8i: Building Efficient Databases

-----Original Message-----
To: Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com> Date: 16 March 2002 10:37

|
|
|On that line, I've just had a note from Gaja
|about my commentary on the line:
|
| "Rewrite all correlated subqueries using in-line views".
|

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jonathan Lewis
  INET: jonathan_at_jlcomp.demon.co.uk

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
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 Sat Mar 16 2002 - 08:58:20 CST

Original text of this message

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