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

Hvorfor er denne CTE så meget langsommere end at bruge temp-tabeller?

Som du kan se i forespørgselsplanen, med CTE'er, forbeholder motoren sig retten til at anvende dem grundlæggende som et opslag, selv når du ønsker en joinforbindelse.

Hvis den ikke er sikker nok, kan den køre det hele uafhængigt på forhånd, i det væsentlige generere en midlertidig tabel... lad os bare køre den én gang for hver række.

Dette er perfekt til de rekursionsforespørgsler, de kan gøre som magi.

Men du ser - i de indlejrede Nested Loops - hvor det kan gå frygteligt galt.
Du finder allerede svaret på egen hånd ved at prøve den rigtige temp-tabel.



  1. SQL/PHP:Vis top 3 mest solgte produkter fra databasen

  2. Kan du indeksere underforespørgsler?

  3. Sådan fejlretter du en krukke eksternt fra netbeans

  4. Hvorfor har vi brug for GLOB-klausulen i SQLite?