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

Perbedaan antara Subquery dan Subquery Berkorelasi

Contoh di atas bukan Sub-Kueri yang terkait bersama. Ini adalah Derived Table / Inline-View karena Sub-query dalam FROM Clause.

Sub-kueri Berkorelasi harus merujuk Tabel induknya (Kueri utama) di dalamnya. Misalnya Lihat menemukan gaji maks Nth oleh Sub-kueri terkait:

SELECT Salary 
FROM Employee E1
WHERE N-1 = (SELECT COUNT(*)
             FROM Employee E2
             WHERE E1.salary <E2.Salary) 

Kueri Terkait Vs Bersarang.

Perbedaan teknis antara Sub-kueri Normal dan sub-kueri Co-terkait adalah:

1. Pengulangan: Loop sub-kueri terkait di bawah kueri utama; sedangkan tidak bersarang; oleh karena itu sub-kueri yang terkait bersama dijalankan pada setiap iterasi dari kueri utama. Sedangkan dalam hal Nested-query; subquery dijalankan terlebih dahulu kemudian kueri luar dieksekusi berikutnya. Oleh karena itu, maksimum no. dari eksekusi adalah NXM untuk subquery yang berkorelasi dan N+M untuk subquery.

2. Ketergantungan (Dalam ke Luar vs Luar ke Dalam): Dalam kasus subkueri yang terkait bersama, kueri dalam bergantung pada kueri luar untuk diproses sedangkan dalam subkueri normal, kueri luar bergantung pada kueri dalam.

3.Kinerja: Menggunakan kinerja sub-kueri Co-terkait menurun, karena, ia melakukan iterasi NXM alih-alih iterasi N+M. Eksekusi Sub-kueri yang terkait bersama.

Untuk informasi lebih lanjut dengan contoh:

http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-Sql-Sub-Queries-Nested-Co-related.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bingung tentang UPDLOCK, HOLDLOCK

  2. SQRT() Contoh di SQL Server

  3. batasan unik bersyarat

  4. Mengkonversi dari DateTime ke INT

  5. Waktu Query SQL Server habis tergantung pada Where Clause