/*+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 .