sql >> Databasteknik >  >> RDS >> Sqlserver

SQL 2005 CTE vs TEMP-tabell Prestanda när den används i kopplingar till andra tabeller

CTE är bara ett alias för frågan.

Den kan (eller kanske inte) köras om varje gång den används.

Det finns inget rent sätt att tvinga fram CTE materialisering i SQL Server (som Oracles /*+ MATERIALIZE */ ), och du måste göra smutsiga trick som detta:

CTE kan förbättra prestandan om den används i planer som bara kräver en utvärdering (som HASH JOIN , MERGE JOIN etc.).

I dessa scenarier kommer hashtabellen att byggas direkt från CTE , medan du använder temp-tabellen kommer att kräva utvärdering av CTE , drar resultaten in i temptabellen och läser temptabellen igen.



  1. Hur man ändrar schema för ett objekt (tabell, vy, lagrad procedur) i SQL Server Database - SQL Server / TSQL självstudie del 28

  2. Får duplikaträkning när INSERT IGNORE körs via JDBC

  3. Returnerar flera tabeller från en lagrad procedur

  4. Hur validerar man kreditkortsnummer och identifierar dess typ med PL/SQL?