Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Różnica między podzapytaniem a skorelowanym podzapytaniem

Powyższy przykład nie jest powiązanym zapytaniem podrzędnym. Jest to pochodna tabela / widok wbudowany, ponieważ np. Zapytanie podrzędne w klauzuli FROM.

Skorelowane podzapytanie powinno odwoływać się do swojej macierzystej (głównej tabeli zapytań) w nim. Na przykład Zobacz znajdź N-te maksymalne wynagrodzenie według powiązanego podzapytania:

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

Podzapytania powiązane i zagnieżdżone.

Techniczne różnice między podzapytaniem Normalnym a podzapytaniem powiązanym:

1. Zapętlanie: Powiązana pętla podzapytania w zapytaniu głównym; mając na uwadze, że nie zagnieżdżone; dlatego powiązane podzapytanie jest wykonywane przy każdej iteracji zapytania głównego. mając na uwadze, że w przypadku zapytania zagnieżdżonego; podzapytanie jest wykonywane jako pierwsze, a następnie wykonywane jest zapytanie zewnętrzne. Stąd maksymalna nie. wykonań to NXM dla skorelowanego podzapytania i N+M dla podzapytania.

2. Zależność (zewnętrzne na zewnętrzne kontra zewnętrzne na wewnętrzne): W przypadku współpowiązanego podzapytania, zapytanie wewnętrzne zależy od zapytania zewnętrznego do przetworzenia, podczas gdy w normalnym podzapytaniu zapytanie zewnętrzne zależy od zapytania wewnętrznego.

3.Wydajność: Użycie podzapytania związanego ze współbieżnością zmniejsza wydajność, ponieważ wykonuje iteracje NXM zamiast iteracji N+M. ¨ Powiązane wykonywanie podzapytania.

Więcej informacji z przykładami:

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. Usunąć pojedynczy rekord z Entity Framework?

  2. Jak zaktualizować dwie tabele w jednej instrukcji w SQL Server 2005?

  3. Zwróć klucze podstawowe z połączonego serwera w SQL Server (przykłady T-SQL)

  4. OPENROWSET nie akceptuje zmiennych dla swoich argumentów (SQL Server)

  5. Jaka jest różnica między varchar a nvarchar?