sql >> Database teknologi >  >> RDS >> Sqlserver

SQL 2005 CTE vs TEMP tabel Ydeevne, når den bruges i joins af andre tabeller

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.



  1. FATAL:kunne ikke få adgang til den private nøglefil /etc/ssl/private/ssl-cert-snakeoil.key:Tilladelse nægtet

  2. Er der nogen anden måde at oprette begrænsninger under oprettelse af SQL-tabel?

  3. Mysql-forespørgselsproblem

  4. #1241 - Operand skal indeholde 1 kolonne(r)