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: Improve this querry!?

Re: Improve this querry!?

From: Lothar Armbruester <lothar.armbruester_at_t-online.de>
Date: Mon, 10 Nov 2003 18:53:48 +0100
Message-ID: <PM0003CBC879D5C803@hades.none.local>


Mark Schubert wrote:

[...]
>
> SELECT /*+ INDEX(MED_MT_TB IX0101) */
> med.inputserialnumber, inputconnectionnumber, rejectedmessage,
> destinationnumber, mrdstatus, medstatus
> FROM med_mt_tb med, mrd_mt_tb mrd
> WHERE
> mrd.inputserialnumber = med.inputserialnumber(+) AND
> med.inputserialnumber > HEXTORAW('3FA6CDF541000013') AND -- Mon Nov 3
> 21:51:49 2003
> med.inputserialnumber < HEXTORAW('3FA6DEF541000013') AND -- Mon Nov 3
> 23:04:21 2003
> medstatus <> 'T' AND
> med.inputserialnumber NOT IN (
> SELECT /*+ INDEX(MRD_MT_TB IX0101) */
> med.inputserialnumber FROM mrd_mt_tb
> WHERE mrdstatus IS NOT NULL)
> /
>

Hello Mark,
maybe you gain some performance using a hash antijoin whith your NOT IN clause. Have a look at the docs. Since NOT IN is one of the slowest operations one can do with a database, this may boost your performance. The HASH_AJ hint has some prerequisites to work properly though.

Hope that helps,
Lothar

-- 
Lothar Armbrüster       | la_at_oktagramm.de
Hauptstr. 26            | la_at_heptagramm.de
D-65346 Eltville        | lothar.armbruester_at_t-online.de
Received on Mon Nov 10 2003 - 11:53:48 CST

Original text of this message

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