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: Higher Consistent Gets...

Re: Higher Consistent Gets...

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Sat, 15 Sep 2001 02:22:42 -0700
Message-ID: <F001.0038FA46.20010915021019@fatcity.com>

You don't quote a version of Oracle - which makes a difference to the ROWS column on the execution path.

However, I think you are seeing the extra I/O because Oracle is driving off the main table, then executing the subquery for each row returned - thus executing your 5 logical I/O many times. Ideally you would probably like Oracle to use the subquery to drive the main query.

You may be able to do this by converting the subquery into an inline view, and joining it (perhaps with an ORDERED hint) to the main query:

select /*+ ordered */

        ...
from

        (
            select location_code
            from gn_location
            connect by prior location_code=parent_code
            start with location_code='3142'
        )        v
        fr_search_query pd

where

    pd.location_code = v.location_code
and

    etc.

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

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

Screen saver or Life saver: http://www.ud.com Use spare CPU to assist in cancer research.

-----Original Message-----
To: Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com> Date: 14 September 2001 18:10

|!! Please do not post Off Topic to this List !!
|
|Hi
|
|I am having problem with a query. This query fetches rows from a
table which
|has 15 million rows.
|
|The problem is, when I execute this query with subquery, the
consistent gets
|are 4700. Where us without the subquery the consistent gets are just
400. If
|I execute the subquery alone, the consistent gets are just 5.
|
|
|Here is the main query with subquery results in cons.gets of 4700:
|
|
|select pd.holiday_id holidayID, pd.package_number l_package_number,
| min(pd.tfr_price) l_tpr_price
| from fr_search_query pd
| where pd.departure_date between TO_DATE('06/10/2001','dd/mm/rrrr')
| and TO_DATE('13/10/2001','dd/mm/rrrr')
| and pd.location_code in (select location_code
| from gn_location
| connect by prior
location_code=parent_code
| start with location_code='3142')
| and ROWNUM < 301
| group by pd.holiday_id , pd.package_number
| order by pd.location_name, pd.location_code, pd.accom_unit_name,
| pd.accom_unit_code, pd.departure_date,
min(pd.adult_price)
|

-- 
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 Sep 15 2001 - 04:22:42 CDT

Original text of this message

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