Problema con le function all'interno dei vincoli

davideSQL

Nuovo Utente
4 Gen 2010
2
0
0
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
 

Discussioni simili