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

La requête Oracle est lente (ou échoue) à partir de l'application .NET mais est rapide à partir de SQL Developer

Cela n'avait rien à voir avec le fournisseur ODP.NET. Le problème était que la bibliothèque que nous utilisons pour créer des connexions pour nous (qui, bien sûr, n'est pas utilisée par Oracle SQL Developer, et que je n'ai pas utilisée lorsque j'ai essayé le fournisseur Microsoft) exécutait toujours les instructions suivantes avant de faire quoi que ce soit :

ALTER SESSION SET NLS_COMP = LINGUISTIC
ALTER SESSION SET NLS_SORT = BINARY_CI

Ceux-ci rendent Oracle insensible à la casse. Mais, ils rendent également tous les index conventionnels inutiles. Parce que nous interrogeions à partir d'une vue, elle avait un tri intégré. Et comme nous ne possédons pas la base de données, nous ne pouvons pas rendre les index linguistiques pour résoudre le problème de performances.

Fournir un moyen de ne pas exécuter ces instructions dans ce scénario (rare) a résolu le problème.