senza ulteriori informazioni, possiamo solo presumere che non venga utilizzato un indice con la funzione to_number() applicata alla colonna. Come mostrato in questa domanda SO , una conversione di tipo può impedire all'ottimizzatore di utilizzare un indice.
In generale:
- quando aggiungi una funzione a una colonna (es:
to_number(id)
) l'ottimizzatore non sarà in grado di utilizzare gli indici normali su quella colonna, - se è possibile, dovresti usare la colonna raw. Ad esempio:invece di
WHERE trunc(col) = DATE '2009-08-27'
dovresti usare:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- se devi davvero applicare una funzione a una colonna, puoi utilizzare un indice basato su funzioni