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.