/*+DRIVING_SITE(rd)*/
hint не работи с MERGE, защото операцията трябва да се изпълнява в базата данни, където се намира обединената таблица. Което в случая е локалната база данни. Това означава целия набор от резултати от отдалечената таблица се изтегля през връзката към базата данни и след това се филтрира спрямо данните от локалната таблица.
Така че, отхвърлете намека. Също така предлагам да преобразувате клаузата IN в съединение:
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)
)
Моля, имайте предвид, че отговорите на въпроси за настройка на производителността без достатъчно подробности са само предположения .