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

INNER JOIN có thể cung cấp hiệu suất tốt hơn EXISTS không

Nói chung, INNER JOINEXISTS là những thứ khác nhau.

Cái trước trả về các bản sao và cột từ cả hai bảng, cái sau trả về một bản ghi và là một vị từ, trả về các bản ghi chỉ từ một bảng.

Nếu bạn tham gia nội bộ trên UNIQUE , chúng thể hiện cùng một hiệu suất.

Nếu bạn thực hiện một phép nối bên trong trên một tập bản ghi với DISTINCT đã áp dụng (để loại bỏ các bản sao), EXISTS thường nhanh hơn.

INEXISTS các mệnh đề (với mối tương quan tương đương) thường sử dụng một trong một số SEMI JOIN các thuật toán thường hiệu quả hơn một DISTINCT trên một trong các bảng.

Xem bài viết này trong blog của tôi:

  • TRONG so với THAM GIA so với TỒN TẠ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. Làm cách nào để tải tệp XML vào cơ sở dữ liệu bằng gói SSIS?

  2. Cách ROW_NUMBER () hoạt động trong SQL Server

  3. Sắp xếp tự nhiên (chữ-số của con người) trong Microsoft SQL 2005

  4. Nhận danh sách các múi giờ được hỗ trợ trong SQL Server (T-SQL)

  5. Nhận ngày đầu tiên trong tuần trong SQL Server