/*+DRIVING_SITE(rd)*/
petunjuk tidak berfungsi dengan MERGE karena operasi harus dijalankan di database tempat tabel gabungan berada. Yang dalam hal ini adalah database lokal. Itu berarti seluruh rangkaian hasil dari tabel jarak jauh ditarik melintasi tautan database dan kemudian disaring dengan data dari tabel lokal.
Jadi, buang petunjuknya. Saya juga menyarankan Anda mengubah klausa IN menjadi gabungan:
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)
)
Harap diingat bahwa jawaban atas pertanyaan penyetelan kinerja tanpa detail yang memadai adalah hanya tebakan .