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

Die Oracle-Abfrage ist langsam (oder schlägt fehl) von der .NET-App, ist aber schnell von SQL Developer

Es hatte nichts mit dem ODP.NET-Anbieter zu tun. Das Problem war, dass die Bibliothek, die wir verwenden, um Verbindungen für uns zu erstellen (die natürlich nicht von Oracle SQL Developer verwendet wird und die ich nicht verwendet habe, als ich den Microsoft-Anbieter ausprobierte), immer die folgenden Anweisungen ausführte, bevor sie irgendetwas tat:

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

Dadurch wird bei Oracle die Groß-/Kleinschreibung nicht beachtet. Sie machen aber auch alle herkömmlichen Indizes unbrauchbar. Da wir von einer Ansicht aus abgefragt haben, war die Reihenfolge eingebaut. Und da wir die Datenbank nicht besitzen, können wir die Indizes nicht linguistisch machen, um das Leistungsproblem zu beheben.

Das Bereitstellen einer Möglichkeit, diese Anweisungen in diesem (seltenen) Szenario nicht auszuführen, hat das Problem behoben.