Ciao a tutti,
Sto cercanto di risolvere il seguente problema di performance.
La query (su cui si basa un report) scritta nel modo seguente è terribilmente lenta:
select *
from tabella
where campo1 in
(funzione1(parametro1),
funzione1(parametro2),
funzione1(parametro3),
funzione1(parametro4))
mentre diventa velocissima se proposta come:
select *
from tabella
where campo1 in
((select funzione1(parametro1) from dual),
(select funzione1(parametro2)from dual),
(select funzione1(parametro3)from dual),
(select funzione1(parametro4)from dual))
La seconda scrittura è però poco leggibile se inserita all'interno di una query complessa inoltre i repot da modificare sono moltissimi...se qualcuno ha qualche idea sarebbe ottimo!
Grazie
Sto cercanto di risolvere il seguente problema di performance.
La query (su cui si basa un report) scritta nel modo seguente è terribilmente lenta:
select *
from tabella
where campo1 in
(funzione1(parametro1),
funzione1(parametro2),
funzione1(parametro3),
funzione1(parametro4))
mentre diventa velocissima se proposta come:
select *
from tabella
where campo1 in
((select funzione1(parametro1) from dual),
(select funzione1(parametro2)from dual),
(select funzione1(parametro3)from dual),
(select funzione1(parametro4)from dual))
La seconda scrittura è però poco leggibile se inserita all'interno di una query complessa inoltre i repot da modificare sono moltissimi...se qualcuno ha qualche idea sarebbe ottimo!
Grazie