Tema: Re: Reikia pagalbos su SQL
Autorius: tallman
Data: 2011-05-11 16:52:01
:)

visu pirma jokio skirtumo kokia oracle versija.

darom prielaida kad prekiu daug, o aprasymu maza.
jeigu ilgai veikia toks trivialus selectas, manau problema yra indekse ant 
prekes tipo lauko (jeigu toks yra).
jeigu indekso nera, reikia sukurti. jeigu yra, rebuildinti.

jeigu indekso nera ir kurti negalima, o prekes nera filtruojamos pagal 
aprasyma, galima selecta parasyti tipo toki
select prek.preke, (select aprasymas from aprasymai apr where apr.tipas = 
prek.tipas) from prekes prek
indeksas ant aprasymo tipo irgi padetu...


"HyperLink" <tomas.bagdonas@gmail.com> wrote in message 
news:iqe2pe$dde$1@trimpas.omnitel.net...
> Turiu čia reikalų su tokia pagyvenusia Oracle versija 8.
>
> yra toks selectas:
>
> select prekes.preke, aprasymai.prekes_aprasymas from prekes, aprasymai 
> where prekes.tipas=aprasymai.tipas
>
> prekes.tipas ir aprasymai.tipas yra padaryti string(varchar) tipo, na ne 
> mano daryta :) DB modifikuoti negaliu.
>
> užklausa vykdoma žiauriai ilgai apie 2 val. Na selectas truputi didesnis 
> bet esmė kad stringa šioje vietoje. Be sios vietos select trunka tik 2 
> minutes, jei nereikia iskasti aprasymo.
>
> Gal sakau būtų optimaliau su decode daryti:
>
> select decode(prekes.tipas, (select atitinkamas_aprasymo_tipas), (select 
> atitinkamas_prekes_prasymas)) from prekes, aprasymai
>
>
> Kaip reikėtų teisingai aprašyti tokį select?
>