Vi har en situation hvor der ud fra nogen startdata foretages en ret
kompleks SQL-forespoergsel (pt 6 nestede subselects og 1 decode paa en
tabel med 17000 raekker) som tager nogen sekunder og som returnerer en
tabel i stoerrelsesordenen 1000 raekker, og hvor dette grundresultat
herefter er statisk for resten af denne soegesession.
Disse 1000 raekker oenskes der herefter mulighed for yderligere
forfining i, fx ved at sige at man kun oensker personer i en bestemt
aldersperiode, eller fra et bestemt omraade, osv, og her vakler jeg nu
mellem to muligheder:
1) Gentage hele den oprindelige soegning med ekstra "where" og "order
by" tilfoejet.
2) Konstruere en "select * from (select ... monsterselect) where
... order by ..."
Maalet er selvfoelgelig at Oracle skal genkende den tidligere
forespoergsel og benytte det der genererede resultat istedet for at
koere hele moellen igen, men jeg ved ikke hvordan jeg ser hvordan den
vaelger. Er der nogen gode tips? Henvisninger til technet er ok.
Omgivelserne er en JDBC-adgang (9i driveren) til en Oracle
7.3.etellerandet paa Solaris, og vi har 9i vaerktoejerne paa en
Linuxmaskine. Databasen kan ikke opgraderes af andre grunde.
Som det kan ses af ovenstaaende er jeg ikke fuldbefaren DBA, men jeg
har en fornemmelse af hvad jeg gerne vil have
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn