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

Điều kiện nối trên nhiều cột so với nối đơn trên các cột được nối?

Tôi nghĩ rằng phiên bản có nối thực tế sẽ luôn chậm hơn.

Nếu bất kỳ cột nào bạn đang so sánh riêng lẻ có chỉ mục, cơ sở dữ liệu thông thường sẽ có thể sử dụng các chỉ mục để tối ưu hóa kết hợp. Khi bạn so sánh các nối, nó phải thực hiện quét toàn bộ bảng, vì kết quả của một phép tính sẽ không có trong chỉ mục.

Và ngay cả khi các cột không được lập chỉ mục, cơ sở dữ liệu vẫn có thể thực hiện các phép so sánh hiệu quả hơn. Nó so sánh từng cặp cột tại một thời điểm và có thể dừng ngay khi một trong những so sánh đó không thành công. Khi sử dụng phép nối, trước tiên nó phải kết hợp tất cả các cột, trong cả hai hàng, sau đó thực hiện so sánh chuỗi.

Cuối cùng, nếu bất kỳ cột nào là số, việc ghép nối sẽ yêu cầu thêm bước chuyển đổi số thành chuỗi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao Oracle thêm một cột ẩn ở đây?

  2. Chuyển đổi ngày XSD xs:dateTime thành Ngày Oracle

  3. Sử dụng câu lệnh WITH và UPDATE trong cùng một truy vấn SQL

  4. Thay đổi mật khẩu SYS trong RAC

  5. Chèn CLOB bằng cx_Oracle