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

SQL 2005 CTE vs tabela TEMP Wydajność w przypadku złączeń innych tabel

CTE to tylko alias zapytania.

Może (lub nie) być uruchamiany ponownie za każdym razem, gdy jest używany.

Nie ma prostego sposobu na wymuszenie CTE materializacja w SQL Server (np. /*+ MATERIALIZE */ Oracle ) i musisz robić takie brudne sztuczki:

CTE może poprawić wydajność, jeśli jest używany w planach wymagających tylko jednej oceny (np. HASH JOIN , MERGE JOIN itp.).

W tych scenariuszach tablica mieszająca zostanie zbudowana bezpośrednio na podstawie CTE , podczas gdy użycie tabeli tymczasowej będzie wymagało oceny CTE , przeciągając wyniki do tabeli tymczasowej i ponownie ją odczytując.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja QUALIFY-podobna w SQL Server

  2. Czy typ danych „MONEY” programu SQL Server jest dziesiętną liczbą zmiennoprzecinkową lub binarną liczbą zmiennoprzecinkową?

  3. W jaki sposób SQL Server określa kolejność kolumn, gdy wykonujesz `SELECT *`?

  4. Dane przestawne tabeli przestawnej przekształcania SQL

  5. Użyj @@IDENTITY, aby zwrócić ostatnio wstawioną wartość tożsamości w programie SQL Server