Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tối ưu hóa khi hợp nhất từ ​​liên kết dữ liệu Oracle

/*+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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. So sánh thời gian của Oracle

  2. Tại sao oracle không hiển thị phần nguyên của số thập phân

  3. Chức năng gọi VBA qua VBA và ADO

  4. Chỉ chọn các cột không có giá trị Null trong Oracle

  5. Bắt đầu với Oracle SQL Developer trên Windows