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

Optymalizacja podczas łączenia z Oracle Datalink

/*+DRIVING_SITE(rd)*/ wskazówka nie działa z funkcją MERGE, ponieważ operacja musi zostać uruchomiona w bazie danych, w której znajduje się scalona tabela. W tym przypadku jest to lokalna baza danych. Oznacza to cały zestaw wyników ze zdalnej tabeli jest przeciągany przez łącze bazy danych, a następnie filtrowany według danych z lokalnej tabeli.

Więc odrzuć podpowiedź. Proponuję również przekonwertować klauzulę IN na sprzężenie:

Merge into project p
using (select rp.projectID,
              rp.otherdata
       FROM Project ld
            inner join [email protected] rd
                     on rd.projectID = ld.projectID
      where ld.LastUpdated < (sysdate - 6/24)) q
-- This select in the in clause one returns 10 rows. Its a test database.
    On (q.projectID = p.projectID)
    )

Pamiętaj, że odpowiedzi na pytania dotyczące dostosowywania wydajności bez wystarczających szczegółów to tylko domysły .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak rozpoznać, czy wartość nie jest liczbowa w Oracle?

  2. Adaptacyjne statystyki dynamiczne zabijają wydajność w 12.1.0.2 RAC

  3. Wyłącz, a później włącz wszystkie indeksy tabel w Oracle

  4. Egzekwowanie klucza unikalnego/podstawowego – indeks odrzucenia

  5. Zwracanie kursora referencyjnego Oracle i dołączanie wielu wyników