CTE is slechts een alias voor de zoekopdracht.
Het kan (of niet) elke keer dat het wordt gebruikt opnieuw worden uitgevoerd.
Er is geen schone manier om CTE . te forceren materialisatie in SQL Server (zoals Oracle's /*+ MATERIALIZE */ ), en je moet dit soort trucjes doen:
CTE kan de prestaties verbeteren indien gebruikt in plannen die slechts één evaluatie vereisen (zoals HASH JOIN , MERGE JOIN enz.).
In deze scenario's wordt de hashtabel rechtstreeks vanuit de CTE . gebouwd , terwijl het gebruik van de tijdelijke tabel vereist dat de CTE . wordt geëvalueerd , trek de resultaten naar de tijdelijke tabel en lees de tijdelijke tabel opnieuw.