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

Tôi có thể bật chỉ mục tổng hợp khi sử dụng phép nối bên trái không

Nó hoạt động như mong đợi. Oracle đã làm chính xác những gì bạn yêu cầu.

CREATE INDEX email_phonenumber_student_idx
  ON student(phonenumber, email);

Bạn có một chỉ mục tổng hợp trên phonenumber, email , trong khi bạn không sử dụng bất kỳ cột nào trong vị từ bộ lọc truy vấn của bạn:

where months_between(SYSDATE, dateofbirth)/12 >= 18 
and  xyz.studentnumber is null;

Vì vậy, không có lý do gì khiến Oracle thực hiện quét chỉ mục trên phonenumber, email . Bạn chỉ cần CHỌN các cột đó của khóa tổng hợp chứ không phải lọc chúng:

SELECT Phonenumber, email 
from student left join Xyz

Chỉ mục sẽ được sử dụng khi bạn DỰ ÁN các cột đó, không chỉ CHỌN . STUDENT bảng như mong đợi dành cho FULL TABLE SCAN vì nó là một lựa chọn đơn giản và không sử dụng bất kỳ bộ lọc nào trên các cột được lập chỉ mục. Nếu bạn muốn xem quá trình quét chỉ mục đang diễn ra, hãy thêm bộ lọc bên dưới:

AND phonenumber = <value>
AND email = <value>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để nối các hàng được phân tách bằng dấu cách trong oracle?

  2. Làm mới / Cập nhật màn hình biểu mẫu trong Oracle D2k Forms 6i

  3. Cách tìm Phiên bản thành phần EBS R12

  4. Nhận các kết quả mã hóa khác nhau giữa C # .Net và Oracle

  5. max (rowid) trong oracle là gì