Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Newbie: Query optimization
I'm completely new to optimization. The SELECT statement below (which is
actually part of a cursor definition), is run completely differently on 9i
(which I have on my own computer for testing purposes), and 8i, which is
where the real data is. Table definitions _and data_ are the same. Is there
a hint I can add that will get 8i to choose the 9i plan (which looks more
efficient and seems to run faster)?
Thanks,
Jon
SELECT s.fil filno,datestart,dateend,s.noals,s.nocls,s.famsts
FROM rawsource s,casecomp c,casefile f
where s.fil=f.fil and c.fil = f.fil and c.datestart = f.compstart AND
(s.noals=c.noals
and s.nocls=c.nocls and s.famsts=c.famsts)
Chosen by 9i:
SELECT STATEMENT Optimizer=CHOOSE (Cost=751 Card=391 Bytes=34017)
HASH JOIN (Cost=751 Card=391 Bytes=34017)
HASH JOIN (Cost=111 Card=32366 Bytes=1132810)
INDEX (FAST FULL SCAN) OF IX_FILE_COMPSTART (NON-UNIQUE) (Cost=4
Card=32407 Bytes=356477)
TABLE ACCESS (FULL) OF CASECOMP (Cost=24 Card=32407 Bytes=777768) TABLE ACCESS (FULL) OF RAWSOURCE (Cost=210 Card=112637 Bytes=5857124)
Chosen by 8i:
SELECT STATEMENT Optimizer=CHOOSE (Cost=13601 Card=56 Bytes=4704)
HASH JOIN (Cost=13601 Card=56 Bytes=4704)
MERGE JOIN (Cost=12930 Card=4849 Bytes=344279)
SORT (JOIN) (Cost=1098 Card=36524 Bytes=693956) TABLE ACCESS (FULL) OF CASECOMP (Cost=98 Card=36524 Bytes=693956) SORT (JOIN) (Cost=11832 Card=132755 Bytes=6903260) TABLE ACCESS (FULL) OF RAWSOURCE (Cost=996 Card=132755Bytes=6903260)
INDEX (FAST FULL SCAN) OF IX_FIL_COMPSTART (NON-UNIQUE) (Cost=4 Card=42334 Bytes=550342)
CREATE TABLE CASEFILE (
COMDAT DATE, FIL NUMBER (6) NOT NULL,
FIL NUMBER NOT NULL, DATESTART DATE NOT NULL, DATEEND DATE, NOALS NUMBER, NOCLS NUMBER, FAMSTS NUMBER,
CONTDAY1 NUMBER (5), CONTDAY2 NUMBER (5), CONTDT NUMBER (5), SUSPEND NUMBER (3), COMDAT NUMBER (9), SUSDATE NUMBER (8), REODATE NUMBER (8), REASUS NUMBER (5), KIVDAT NUMBER (5), LTAPU NUMBER (5), STAPU NUMBER (5), FIL NUMBER (8), WELDIS NUMBER (5), SETTNUM NUMBER (5), CAS CHAR (3), ELECDIST NUMBER (5), NOALS NUMBER (3), NOCLS NUMBER (3), FAMSTS NUMBER (3), ACCOM NUMBER (3), BENH CHAR (2), EDUH NUMBER (3), OCCH NUMBER (3), EMPH NUMBER (3), EDUS NUMBER (3), OCCS NUMBER (3), EMPS NUMBER (3), BRTHH NUMBER (9), SEXH CHAR (1), BENS CHAR (2), BRTHS NUMBER (9), SEXS CHAR (1), BEN3 CHAR (2), SEXB3 CHAR (1), BRTHB3 NUMBER (9), NOBENCH NUMBER (5), MONPAY NUMBER (7,2), TOTPMTS NUMBER (7,2), TOTINC NUMBER (7,2), KID0_4 NUMBER (3), KID5_9 NUMBER (3), KID10_12 NUMBER (3),
SINH NUMBER (9), SINS NUMBER (9), AGECH01 NUMBER (3),
BDCH12 NUMBER (9), TOTDEDIN NUMBER (7,2), ARCODE1 NUMBER (3), AROPENB1 NUMBER (7,2), AROPEND1 NUMBER (9), ARCURRB1 NUMBER (7,2), ARCODE2 NUMBER (3), AROPENB2 NUMBER (7,2), AROPEND2 NUMBER (9), ARCURRB2 NUMBER (7,2), ARCODE3 NUMBER (3), AROPENB3 NUMBER (7,2), AROPEND3 NUMBER (9), ARCURRB3 NUMBER (7,2), ARCODE4 NUMBER (3), AROPENB4 NUMBER (7,2), AROPEND4 NUMBER (9), ARCURRB4 NUMBER (7,2), ARCODE5 NUMBER (3), AROPENB5 NUMBER (7,2), AROPEND5 NUMBER (9), ARCURRB5 NUMBER (7,2), ARCODE6 NUMBER (3), AROPENB6 NUMBER (7,2), AROPEND6 NUMBER (9), ARCURRB6 NUMBER (7,2), ARCODE7 NUMBER (3), AROPENB7 NUMBER (7,2), AROPEND7 NUMBER (9), ARCURRB7 NUMBER (7,2), ARCODE8 NUMBER (3), AROPENB8 NUMBER (7,2), AROPEND8 NUMBER (9), ARCURRB8 NUMBER (7,2), ARCODE9 NUMBER (3), AROPENB9 NUMBER (7,2), AROPEND9 NUMBER (9), ARCURRB9 NUMBER (7,2), TOTAR NUMBER (9,2), INDARCRE NUMBER (9,2), CURRCAMT NUMBER (9,2),
![]() |
![]() |