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

Một phép nối chống có hiệu quả hơn một phép nối bên trái không?

Khi bạn sử dụng "không tồn tại" hoặc "không có trong" trong truy vấn SQL của mình, bạn cho phép Oracle chọn các đường dẫn truy cập chống tham gia hợp nhất hoặc băm chống tham gia.

Giải thích nhanh

Ví dụ:đã cho phép tham gia bảng A và B (từ A tham gia B trên A.x =B.x) Oracle sẽ tìm nạp tất cả dữ liệu có liên quan từ bảng A và cố gắng khớp chúng với các hàng tương ứng trong bảng B, vì vậy nó phụ thuộc chặt chẽ vào tính chọn lọc của bảng Một vị ngữ.

Khi sử dụng tính năng tối ưu hóa chống nối, Oracle có thể chọn bảng có độ chọn lọc cao hơn và khớp nó với bảng khác, điều này có thể dẫn đến mã nhanh hơn nhiều.

Nó không thể làm điều đó với tham gia thông thường hoặc truy vấn con, vì nó không thể giả định rằng một kết quả khớp giữa bảng A và B là đủ để trả về hàng đó.

Gợi ý có liên quan: HASH_AJ, MERGE_AJ.

Thêm:

Điều này trông giống như một bài báo hay và chi tiết về chủ đề này.

Tại đây là một bài báo khác, khác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sự khác biệt ngày tháng

  2. Hàm NANVL () trong Oracle

  3. TẠO BẢNG QUY TRÌNH BÊN TRONG

  4. Liệu hiệu suất sẽ ảnh hưởng khi thủ tục cơ sở dữ liệu được gọi từ ứng dụng nhiều lần?

  5. Hàm TO_DATE trong ORACLE