/*+DRIVING_SITE(rd)*/
hint fungerar inte med MERGE eftersom operationen måste köras i databasen där den sammanslagna tabellen finns. Vilket i det här fallet är den lokala databasen. Det betyder hela resultatuppsättningen från fjärrtabellen dras över databaslänken och filtreras sedan mot data från den lokala tabellen.
Så kassera tipset. Jag föreslår också att du konverterar IN-satsen till en 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)
)
Kom ihåg att svar på frågor om prestandajustering utan tillräckliga detaljer är bara gissningar .