zonder aanvullende informatie kunnen we alleen maar aannemen dat er geen index wordt gebruikt met de functie to_number() die op de kolom wordt toegepast. Zoals getoond in deze SO-vraag , kan een typeconversie voorkomen dat de optimizer een index gebruikt.
In het algemeen:
- wanneer u een functie aan een kolom toevoegt (d.w.z.:
to_number(id)
) de optimizer kan de reguliere indexen in die kolom niet gebruiken, - als het mogelijk is, moet u de kolom onbewerkt gebruiken. Bijvoorbeeld:in plaats van
WHERE trunc(col) = DATE '2009-08-27'
je moet gebruiken:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- als je echt een functie op een kolom moet toepassen, kun je een functiegebaseerde index