Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apakah anti-join lebih efisien daripada left outer join?

Saat Anda menggunakan "tidak ada" atau "tidak ada" dalam kueri SQL, Anda membiarkan Oracle memilih jalur akses gabungan anti-gabung atau hash anti-gabung.

Penjelasan Singkat

Misalnya, diberikan join antara tabel A dan B (dari A gabung B pada A.x =B.x) Oracle akan mengambil semua data yang relevan dari tabel A, dan mencoba mencocokkannya dengan baris yang sesuai di tabel B, jadi sangat bergantung pada selektivitas tabel Sebuah predikat.

Saat menggunakan optimasi anti-join, Oracle dapat memilih tabel dengan selektivitas yang lebih tinggi dan mencocokkannya dengan tabel lainnya, yang dapat menghasilkan kode yang jauh lebih cepat.

Ia tidak dapat melakukannya dengan join atau subquery biasa, karena ia tidak dapat mengasumsikan bahwa satu kecocokan antara tabel A dan B cukup untuk mengembalikan baris tersebut.

Petunjuk terkait: HASH_AJ, MERGE_AJ.

Lainnya:

Ini sepertinya artikel yang bagus dan mendetail tentang masalah ini.

Di sini adalah artikel lain yang lebih menarik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cari Di Dalam Tabel Jenis Rekaman

  2. cara menjalankan beberapa kueri Oracle c #

  3. cx_Oracle tidak mengenali lokasi instalasi perangkat lunak Oracle untuk instalasi di Linux

  4. Bagaimana Menangani Kolom Tabel yang Dinamai Dengan Kata Kunci Sql yang Dipesan?

  5. Kesalahan Ketidakcocokan Set Karakter di Oracle