Ohne zusätzliche Informationen können wir nur davon ausgehen, dass kein Index verwendet wird, da die Funktion to_number() auf die Spalte angewendet wird. Wie in diese SO-Frage , kann eine Typumwandlung verhindern, dass der Optimierer einen Index verwendet.
Allgemein:
- wenn Sie einer Spalte eine Funktion hinzufügen (z. B.:
to_number(id)
) kann der Optimierer die regulären Indizes für diese Spalte nicht verwenden, - Wenn es möglich ist, sollten Sie die Spalte raw verwenden. Zum Beispiel:statt
WHERE trunc(col) = DATE '2009-08-27'
Sie sollten Folgendes verwenden:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- Wenn Sie wirklich eine Funktion auf eine Spalte anwenden müssen, können Sie einen funktionsbasierter Index