Ciao ho una query a un sistema Oracle che implica una vista che unisce altre tabelle aplicando un TO_NUMBER() alla chiave primaria delle tabelle.Domanda lenta in Java da JDBC ma non in altri sistemi (TOAD)
Se eseguo la query utilizzando TOAD, la query è molto veloce (1 secondo per 800 reg). Se faccio la stessa query in un programma java da JDBC con un letterale String (non una query parametrizzata), anche il tempo è buono.
Ma se utilizzo una query parametrica da un PreparedStatement, la query impiega 1 minuto per recuperare gli stessi registri. So che utilizzando valori costanti si ottiene un piano di esecuzione distinto rispetto all'utilizzo dei parametri ... ma se rimuovo le funzioni TO_NUMBER nei join della vista, anche la query parametrica è veloce.
- I parametri/unione TO_NUMBER() impediscono l'utilizzo dell'indice PK delle tabelle unite?
- c'è una soluzione per risolvere questo (ho bisogno dei parametri sulla query e anche la funzione TO_NUMBER)?
P.D. sry per il mio cattivo inglese
le tabelle sono partizionate? – skaffman