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: Query taking a long time while running in Java application

Re: Query taking a long time while running in Java application

From: Stephane Faroult <sfaroult_at_oriole.com>
Date: Fri, 11 Apr 2003 11:28:47 -0800
Message-ID: <F001.0057FCC4.20030411112847@fatcity.com>


"Krishnaswamy, Ranganath" wrote:
>
> Hi List,
>
> The below query is taking a long time to execute from the Java
> application and when doing a record count from TOAD.
> Is there any way I can rewrite the below query?
>
> SELECT
> A0.ID ID0,
> A0.SEG_GRP GRP0,
> A1.ID ID1,
> A1.SEG_GRP GRP1,
> A2.ID ID2,
> A2.SEG_GRP GRP2,
> A3.ID ID3,
> A3.SEG_GRP GRP3
> FROM
> ROUTE_BUILD A0,
> ROUTE_BUILD A1,
> ROUTE_BUILD A2,
> ROUTE_BUILD A3
> WHERE
> A0.REQUEST_ID=1943 AND
> A1.REQUEST_ID = 1943 AND
> A2.REQUEST_ID = 1943 AND
> A3.REQUEST_ID = 1943 AND
> (NVL(A0.SEG_TOA + (( SELECT TRANSFER_TIME FROM AIRLINE_TRANSFER_TIME WHERE
> STN_KEY=A1.ORG_KEY AND
> FROM_AIRLINE_KEY=A0.AIRLINE_KEY AND
> TO_AIRLINE_KEY=A1.AIRLINE_KEY AND
> SERVICE_KEY=1)/(24*60)),A0.SEG_TOA) < A1.SEG_LAT) and
> A0.SEG_GRP = A1.SEG_GRP-1 AND
> (NVL(A1.SEG_TOA +(( SELECT TRANSFER_TIME FROM AIRLINE_TRANSFER_TIME WHERE
> STN_KEY=A2.ORG_KEY AND
> FROM_AIRLINE_KEY=A1.AIRLINE_KEY AND
> TO_AIRLINE_KEY=A2.AIRLINE_KEY AND
> SERVICE_KEY=1)/(24*60)),A1.SEG_TOA) < A2.SEG_LAT) AND
> A1.SEG_GRP = A2.SEG_GRP-1 AND
> (NVL(A2.SEG_TOA +(( SELECT TRANSFER_TIME FROM AIRLINE_TRANSFER_TIME WHERE
> STN_KEY=A3.ORG_KEY AND
> FROM_AIRLINE_KEY=A2.AIRLINE_KEY AND
> TO_AIRLINE_KEY=A3.AIRLINE_KEY AND
> SERVICE_KEY=1)/(24*60)),A2.SEG_TOA) < A3.SEG_LAT) AND
> A2.SEG_GRP = A3.SEG_GRP-1
>
> Any help in this regard is very much appreciated.
>
> Thanks and Regards,
>
> Ranganath
>

Ranganath,

The most noticeable characteristic of your query is that you are querying again and again and again the two very same tables. The only columns you are 'playing with' are FROM_AIRLINE_KEY and TO_AIRLINE_KEY - in AIRLINE_TRANSFER_TIME. No need to query ROUTE_BUILD four times, one is enough to return what you need. You only need tojoin ROUTE_BUILD and AIRLINE_TRANSFER_TIME, and I feel that with a string of ORs you should do it.

-- 
Regards,

Stephane Faroult
Oriole Software
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Stephane Faroult
  INET: sfaroult_at_oriole.com

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: 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 Fri Apr 11 2003 - 14:28:47 CDT

Original text of this message

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