De /*+DRIVING_SITE(rd)*/
hint werkt niet met MERGE omdat de bewerking moet worden uitgevoerd in de database waar de samengevoegde tabel zich bevindt. Dat is in dit geval de lokale database. Dat betekent de hele resultatenset uit de externe tabel wordt over de databaselink getrokken en vervolgens gefilterd tegen de gegevens uit de lokale tabel.
Dus negeer de hint. Ik raad je ook aan om de IN-clausule om te zetten in een join:
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)
)
Houd er rekening mee dat antwoorden op vragen over prestatieafstemming zonder voldoende details slechts gissingen zijn .