Domanda

Si consideri il seguente SQL (SQL Server 2008) dichiarazione:

WITH MyResult AS
(
  SELECT 
    Name,
    Row_ID AS ORD
  FROM Person Where Gender = @Gender
)
SELECT *
FROM MyResult
WHERE ORD > 5

Is MyResult memorizzato in una tabella temporanea nel tempdb? Oppure è fare qualcos'altro?

Stiamo ottimizzando alcune query e sarebbe lke per capire meglio con le dichiarazioni (internamente) a prestazioni di aiuto calibro etc.

Grazie

È stato utile?

Soluzione

No, come da questo articolo di MSDN

  

... il CTE è un livello di lingua   costruire-il che significa che SQL Server fa   Non creare internamente temperatura o virtuale   tavoli ...

E anche, come accennato qui :

  

Un'espressione di tabella comune (CTE) può essere   pensato come un insieme di risultati temporanea   che è definita all'interno dell'esecuzione   ambito di una singola SELECT, INSERT,   UPDATE, DELETE o CREATE VIEW   dichiarazione. Una CTE è simile a un   tabella derivata dal fatto che non è memorizzato   come un oggetto e dura solo per la   la durata della query.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top