/*+DRIVING_SITE(rd)*/
gợi ý không hoạt động với MERGE vì hoạt động phải chạy trong cơ sở dữ liệu nơi bảng đã hợp nhất nằm. Trong trường hợp này là cơ sở dữ liệu cục bộ. Điều đó có nghĩa là toàn bộ tập hợp kết quả từ bảng từ xa được kéo qua liên kết cơ sở dữ liệu và sau đó được lọc dựa trên dữ liệu từ bảng cục bộ.
Vì vậy, hãy loại bỏ gợi ý. Tôi cũng khuyên bạn nên chuyển đổi mệnh đề IN thành một phép nối:
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)
)
Xin lưu ý rằng câu trả lời cho các câu hỏi điều chỉnh hiệu suất mà không có đủ chi tiết chỉ là phỏng đoán .