bez dodatkowych informacji możemy jedynie założyć, że indeks nie jest używany, a funkcja to_number() jest zastosowana do kolumny. Jak pokazano w to pytanie TAK , konwersja typu może uniemożliwić optymalizatorowi użycie indeksu.
Ogólnie:
- gdy dodajesz funkcję do kolumny (np.:
to_number(id)
) optymalizator nie będzie mógł użyć zwykłych indeksów w tej kolumnie, - jeśli to możliwe, powinieneś użyć surowej kolumny. Na przykład:zamiast
WHERE trunc(col) = DATE '2009-08-27'
należy użyć:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- jeśli naprawdę musisz zastosować funkcję do kolumny, możesz użyć indeks oparty na funkcjach