Stiamo cercando di ottimizzare alcuni dei nostri T-SQL stored procedure per ridurre la contesa tempdb, ma io non riesco a capire come le variabili non-tavolo sono archiviati da SQL Server:Quando una variabile viene dichiarata in una stored procedure T-SQL, viene mantenuta in memoria o tempdb?
- Quali sui tipi di dati semplici come INT e DATETIME? Sembra che vivrebbero nella memoria.
- Che dire di VARCHAR/VARCHAR (MAX)? Un normale VARCHAR potrebbe vivere in memoria, ma un VARCHAR (MAX) potrebbe aver bisogno di usare tempdb per la sua archiviazione.
- Le variabili di tabella sono memorizzate in tempdb. Questi non sono davvero interessato però.
Il MSDN article on tempdb non spiega le variabili regolari.
Grazie per aver trovato questo! Suppongo che "se i valori sono piccoli" significa meno di 8000 byte? Indipendentemente da ciò, l'articolo sembra implicare che VARCHAR non MAX (N) e piccole variabili siano archiviati in memoria. –