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

Dlaczego to CTE jest o wiele wolniejsze niż używanie tabel tymczasowych?

Jak widać w planie zapytań, z CTE silnik zastrzega sobie prawo do ich zastosowania w zasadzie jako wyszukiwania, nawet jeśli chcesz połączyć.

Jeśli nie jest wystarczająco pewny, może uruchomić całość niezależnie, z góry, zasadniczo generując tabelę tymczasową ... po prostu uruchommy ją raz dla każdego wiersza.

Jest to idealne rozwiązanie dla zapytań rekurencyjnych, które mogą wykonywać jak magia.

Ale widzisz – w zagnieżdżonych pętlach zagnieżdżonych – gdzie może się to bardzo nie udać.
Już sam znajdujesz odpowiedź, próbując prawdziwej tabeli tymczasowej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dowiedz się, ile tysięcy, setek i dziesiątek jest tam w ilości

  2. Jak utworzyć złożony klucz obcy w SQL Server (przykład T-SQL)

  3. Rozwiązywanie problemów z długimi zapytaniami w MS SQL Server

  4. Haszowanie hasła do SQL

  5. Jak zmapować pole encji, którego nazwa jest słowem zastrzeżonym w JPA?