CTE er kun et alias for forespørgslen.
Det kan (eller måske ikke) køres igen, hver gang det bruges.
Der er ingen ren måde at tvinge CTE på materialisering i SQL Server (som Oracles /*+ MATERIALIZE */ ), og du skal lave beskidte tricks som dette:
CTE kan forbedre ydeevnen, hvis den bruges i planer, der kun kræver én evaluering (såsom HASH JOIN , MERGE JOIN osv.).
I disse scenarier vil hash-tabellen blive bygget direkte fra CTE , mens brug af temp-tabellen vil kræve evaluering af CTE , trækker resultaterne ind i temp-tabellen og læser temp-tabellen igen.