Oracle
 sql >> Base de données >  >> RDS >> Oracle

Requête lente en Java par JDBC mais pas dans d'autres systèmes (TOAD)

sans informations supplémentaires, nous ne pouvons que supposer qu'un index n'est pas utilisé avec la fonction to_number() appliquée à la colonne. Comme indiqué dans cette question SO , une conversion de type peut empêcher l'optimiseur d'utiliser un index.

En général :

  • lorsque vous ajoutez une fonction à une colonne (c'est-à-dire :to_number(id) ) l'optimiseur ne pourra pas utiliser les index normaux sur cette colonne,
  • si c'est possible, vous devez utiliser la colonne raw. Par exemple :au lieu de WHERE trunc(col) = DATE '2009-08-27' vous devez utiliser :WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
  • si vous devez vraiment appliquer une fonction à une colonne, vous pouvez utiliser un index basé sur les fonctions