Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkah INNER JOIN menawarkan kinerja yang lebih baik daripada EXISTS

Secara umum, INNER JOIN dan EXISTS adalah hal yang berbeda.

Yang pertama mengembalikan duplikat dan kolom dari kedua tabel, yang terakhir mengembalikan satu catatan dan, sebagai predikat, mengembalikan catatan hanya dari satu tabel.

Jika Anda melakukan inner join pada UNIQUE kolom, mereka menunjukkan kinerja yang sama.

Jika Anda melakukan inner join pada recordset dengan DISTINCT diterapkan (untuk menghilangkan duplikat), EXISTS biasanya lebih cepat.

IN dan EXISTS klausa (dengan korelasi equijoin) biasanya menggunakan salah satu dari beberapa SEMI JOIN algoritma yang biasanya lebih efisien daripada DISTINCT di salah satu meja.

Lihat artikel ini di blog saya:

  • IN vs. BERGABUNG vs. ADA


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana sys.dm_exec_describe_first_result_set_for_object Bekerja di SQL Server

  2. Kolom apa yang umumnya membuat indeks bagus?

  3. TABLOCK vs TABLOCKX

  4. Apakah ada cara untuk mengulang variabel tabel di TSQL tanpa menggunakan kursor?

  5. Ukuran maksimum untuk Kueri SQL Server? klausa IN? Apakah ada Pendekatan yang Lebih Baik?