Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Langsame Abfrage in Java von JDBC, aber nicht in anderen Systemen (TOAD)

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