sin información adicional, solo podemos asumir que no se está utilizando un índice con la función to_number() aplicada a la columna. Como se muestra en esta pregunta SO , una conversión de tipo puede evitar que el optimizador use un índice.
En general:
- cuando agrega una función a una columna (es decir:
to_number(id)
) el optimizador no podrá usar los índices regulares en esa columna, - si es posible, debe usar la columna sin procesar. Por ejemplo:en lugar de
WHERE trunc(col) = DATE '2009-08-27'
debe usar:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- si realmente tiene que aplicar una función a una columna, puede usar un índice basado en funciones