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

Kiedy poprawny kod SQL da zły wynik?

Jedyne, co możesz zrobić, to zastosować wskazówkę NO_QUERY_TRANSFORMATION wprowadzoną w Oracle 10g.

Jeśli przyniesie to pożądany wynik, wiesz, że masz do czynienia z błędem Oracle, ponieważ żadna wskazówka nie powinna zmienić faktycznego wyniku zapytania.

W tym samym czasie mogłeś rozwiązać swój problem, z wyjątkiem tego, że być może Twój plan wykonania nie będzie satysfakcjonujący.

Błąd, który napotykasz (nie wiem, czy jest to znany błąd) polega na tym, że optymalizator Oracle może nie interpretować poprawnie intencji oryginalnego zapytania podczas przekształcania zapytania w celu lepszego planu wykonania (scalanie widoków itp.). Korzystając z podpowiedzi, poinstruujesz optymalizatora, aby tego nie robił.

Zjawisko to jest najczęściej obserwowane w przypadku złożonych zapytań obejmujących wbudowane widoki wydajności.

Obecnie nie mam żadnych próbek kodu, aby odtworzyć ten problem, ale pracuję nad tym.

AKTUALIZACJA:Wygląda na to, że właśnie do tego służy podpowiedź - znalazłem to:

dokumentacja .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Logrotate, aby wyczyścić pliki opatrzone datą

  2. Optymalizacja podczas łączenia z Oracle Datalink

  3. Jak przeprowadzić ręczną dezinstalację Oracle?

  4. Jaki jest najlepszy sposób prekompilacji JSP za pomocą Ant

  5. Nie można wstawić Unicode za pomocą cx-Oracle