sans informations supplémentaires, nous ne pouvons que supposer qu'un index n'est pas utilisé avec la fonction to_number() appliquée à la colonne. Comme indiqué dans cette question SO , une conversion de type peut empêcher l'optimiseur d'utiliser un index.
En général :
- lorsque vous ajoutez une fonction à une colonne (c'est-à-dire :
to_number(id)
) l'optimiseur ne pourra pas utiliser les index normaux sur cette colonne, - si c'est possible, vous devez utiliser la colonne raw. Par exemple :au lieu de
WHERE trunc(col) = DATE '2009-08-27'
vous devez utiliser :WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- si vous devez vraiment appliquer une fonction à une colonne, vous pouvez utiliser un index basé sur les fonctions