/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Oracle 7.3: Hvilken metode kan betale sig?
Fra : Thorbjørn Ravn Ander~


Dato : 20-03-02 16:40


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

 
 
Peter Lykkegaard (21-03-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 21-03-02 08:19


"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:kklmcntfi8.fsf@mimer.null.dk...
> Maalet er selvfoelgelig at Oracle skal genkende den tidligere
> forespoergsel og benytte det der genererede resultat istedet for at
> koere hele moellen igen

Midlertidig(e) tabel(ler)?

mvh/Peter Lykkegaard



Thorbjørn Ravn Ander~ (21-03-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 21-03-02 09:33

"Peter Lykkegaard" <polonline@hot.mail.com> writes:

> Midlertidig(e) tabel(ler)?

En klar mulighed. Jeg ville dog gerne undgaa dette hvis jeg med
rimelighed kunne.

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Peter Lykkegaard (21-03-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 21-03-02 10:55


"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:kkit7qqq0u.fsf@mimer.null.dk...
> "Peter Lykkegaard" <polonline@hot.mail.com> writes:
>
> > Midlertidig(e) tabel(ler)?
>
> En klar mulighed. Jeg ville dog gerne undgaa dette hvis jeg med
> rimelighed kunne.
>
Hmm, begrundelse?

Jeg kender kun ganske lidt til Oracle - arbejder (næsten) udelukkende med
MSSQL
I forb med OLAP ville jeg hælde til en "midlertidig" tabel til den form for
data drilling

Dvs jeg opretter en rigtig tabel udfra mine resultater i den første query
Derefter arbejder jeg videre på dette grundlag

Det er vel statiske data og ikke dynamiske (OLTP) data vi snakker om?

mvh/Peter Lykkegaard





Thorbjørn Ravn Ander~ (21-03-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 21-03-02 10:54

"Peter Lykkegaard" <polonline@hot.mail.com> writes:

> > En klar mulighed. Jeg ville dog gerne undgaa dette hvis jeg med
> > rimelighed kunne.
> >
> Hmm, begrundelse?

Ud fra hvad jeg kan se af Oracle dokumentationen er en Oracle 7 for
gammel til at understoette temporaere tabeller, og der kan godt vaere
flere soegninger i gang samtidig. Jeg gruer for at skulle holde styr
paa det. Det er ikke en mulighed at skifte databasen ud.


> Det er vel statiske data og ikke dynamiske (OLTP) data vi snakker om?

Jeg kender ikke OLTP begrebet. Data er statiske indenfor det tidsrum
det vil dreje sig om.

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Peter Lykkegaard (21-03-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 21-03-02 11:09


"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:kkvgbqi6vr.fsf@mimer.null.dk...
> "Peter Lykkegaard" <polonline@hot.mail.com> writes:
>
> > Det er vel statiske data og ikke dynamiske (OLTP) data vi snakker om?
>
> Jeg kender ikke OLTP begrebet. Data er statiske indenfor det tidsrum
> det vil dreje sig om.
>
Hmm er ikke lige klar hvem der har "opfundet" begrebet

OLAP - OnLine Analysis Processing (Data mining)
OLTP - OnLine Transaction Processing (Production)

På en MSSQL vil man kører de to systemer på forsk bokse

mvh/Peter Lykkegaard




Peter Lykkegaard (21-03-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 21-03-02 11:11


"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:kkvgbqi6vr.fsf@mimer.null.dk...
> "Peter Lykkegaard" <polonline@hot.mail.com> writes:
>
> > > En klar mulighed. Jeg ville dog gerne undgaa dette hvis jeg med
> > > rimelighed kunne.
> > >
> > Hmm, begrundelse?
>
> Ud fra hvad jeg kan se af Oracle dokumentationen er en Oracle 7 for
> gammel til at understoette temporaere tabeller, og der kan godt vaere
> flere soegninger i gang samtidig. Jeg gruer for at skulle holde styr
> paa det. Det er ikke en mulighed at skifte databasen ud.
>
Jeg tænkte egentlig også mere på at oprette en tabel med resultatet af din
første forespørgsel

mvh/Peter Lykkegaard




Thorbjørn Ravn Ander~ (21-03-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 21-03-02 11:07

"Peter Lykkegaard" <polonline@hot.mail.com> writes:

> Jeg tænkte egentlig også mere på at oprette en tabel med resultatet af din
> første forespørgsel

Ideen er naerliggende, men eftersom Oracle 7 ikke understoetter
temporaere tabeller (saa vidt jeg kan se) skal jeg selv holde styr paa
navngivning og at de bliver slettet naar brugeren er faerdig (og
hvornaar er brugeren det i en webapplikation?), hvilket tilfoejer en
kompleksitet jeg helst vil undgaa.

Er der nogen derude der kender noget til Oracle?

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Peter Lykkegaard (21-03-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 21-03-02 11:47


"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:kkr8mei69m.fsf@mimer.null.dk...
> "Peter Lykkegaard" <polonline@hot.mail.com> writes:
>
> > Jeg tænkte egentlig også mere på at oprette en tabel med resultatet af
din
> > første forespørgsel
>
> Ideen er naerliggende, men eftersom Oracle 7 ikke understoetter
> temporaere tabeller (saa vidt jeg kan se) skal jeg selv holde styr paa
> navngivning og at de bliver slettet naar brugeren er faerdig (og
> hvornaar er brugeren det i en webapplikation?),

Ahh, jeg forstår problemet, de gange jeg har anvendt fremgangsmåden havde
jeg en kendt bruger

mvh/Peter Lykkegaard



Ulrik Lunddahl (21-03-2002)
Kommentar
Fra : Ulrik Lunddahl


Dato : 21-03-02 22:10

"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote:

> 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.

Har du kikket på views.

> 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.

Det tror jeg ikke du opnår med et view, men jeg er ikke sikker.

--
Med Venlig Hilsen

Ulrik Lunddahl - nospam037@lunddahl.dk
My heroes: Heddy Lamar & George Antheil



Thorbjørn Ravn Ander~ (16-04-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 16-04-02 15:06

thunderbear@bigfoot.com (Thorbjørn Ravn Andersen) writes:

> 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.

Det viste sig at performance blev hæmmet af at Oracle 7 foretog alt
for mange full table scans, hvor kun et enkelt var nødvendigt. Et
passende hint trak køretiden for hoved-under-armen implementationen
uden temporære tabeller ned fra et par minutter til under 1 sekund.

Når vi skifter til Oracle 9i, skal vi lige kigge på om planneren er
blevet bedre uden hints.
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste