Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapytanie Oracle jest powolne (lub kończy się niepowodzeniem) z aplikacji .NET, ale szybkie z SQL Developer

Nie miało to nic wspólnego z dostawcą ODP.NET. Problem polegał na tym, że biblioteka, której używamy do tworzenia dla nas połączeń (która oczywiście nie jest używana przez Oracle SQL Developer, a której nie używałem, gdy próbowałem dostawcy Microsoft) zawsze wykonywała następujące instrukcje przed zrobieniem czegokolwiek:

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

Dzięki temu Oracle nie uwzględnia wielkości liter. Ale sprawiają, że wszystkie konwencjonalne indeksy stają się bezużyteczne. Ponieważ wysyłaliśmy zapytania z widoku, miał on wbudowaną kolejność. A ponieważ nie jesteśmy właścicielami bazy danych, nie możemy uczynić indeksów lingwistycznych, aby rozwiązać problem z wydajnością.

Zapewnienie sposobu, aby nie wykonywać tych instrukcji w tym (rzadkim) scenariuszu, naprawiło problem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polecenia kopii zapasowej RMAN

  2. Jaka jest różnica między odczytem niepowtarzalnym a odczytem fantomowym?

  3. Czy można zabić pojedyncze zapytanie w Oracle bez zabijania sesji?

  4. Pobierz wartość elementu xml w Oracle PL SQL

  5. Utwórz tabelę — błąd SQL:ORA-00905:brak słowa kluczowego