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

oracle - to samo zapytanie, ale inny plan w 11g i 12c

Plan wykonania wybrany przez wybranego optymalizatora może się znacznie różnić nawet między dwoma środowiskami tej samej wersji, a nie tylko 11g i 12c. Zależy to od wielu czynników, ale przede wszystkim:

  • Liczba wierszy w tabeli (czy są podobne w różnych środowiskach?)
  • Jakie indeksy są obecne (czy obie bazy danych mają dokładnie takie same indeksy?)
  • Czy istnieją statystyki dotyczące tabeli i indeksów oraz jaka jest ich aktualność? Jeśli nie są aktualne, zbierz statystyki dla tabel i indeksy.

Jeśli możesz opublikować te informacje, mogę udzielić bardziej pomocnej odpowiedzi.

Ponadto kod wygląda jak wygenerowany automatycznie, jeśli możesz go zmodyfikować, w oparciu o szczegóły możemy zasugerować przepisane zapytanie i/lub podpowiedzi.

Jeśli nie możesz zmodyfikować kodu, możesz wymusić plan za pomocą SQL Plan Management (SPM) - eksportuj z bazy danych, w której działa szybciej, i importuj do innej bazy danych.

AKTUALIZUJ

Użyj tej uproszczonej wersji SQL do wygenerowania planu:

SELECT * FROM DMProgDate_00001
 WHERE ProgressOID IN ( 
   SELECT OID FROM DMProgress_00001 
    WHERE Project = 'Moho'
      AND Phase = 'Procurement'
      AND Displine = 'Q340'
      AND ROWNUM <= 20
    ORDER BY actCode
  );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL (ORACLE):ORDER BY i LIMIT

  2. Jak sprawdzić, czy wartość DataReader nie jest pusta?

  3. Korzystanie z FLASHBACK w Oracle

  4. Jak usunąć odpowiednie wypełnienie w nazwie dnia w Oracle?

  5. Jak połączyć Oracle Database z projektem Visual Studio C#?