Le variabili di tabella sono state create in memoria o in tempdb? Lo stesso vale per i tavoli temporanei brevi ?variabili di tabella create e mantenute in memoria o in tempdb?
risposta
una tabella temporanea sarà creata in tempdb e si può facilmente verificare la presenza di esso interrogando la tabella sysobjects in tempdb
esempio
create table #test (Item char(1), TimeSold varchar(20))
select * from tempdb.sys.sysobjects
where name like '#test%'
si dovrebbe vedere qualcosa con un nome come #test _______ 000,000,000,905 mila ma poi con più di sottolineatura
Se avete bisogno di controllare se una tabella temporanea esiste poi vedere anche How Do You Check If A Temporary Table Exists In SQL Server
La struttura della variabile Table viene anche creata in tempdb Per vedere la variabile table si potrebbe fare qualcosa del genere ma non è garantito che qualcuno non si sia introdotto di nascosto prima di creare la sua variabile table. Il nome della variabile tavolo sarà qualcosa di simile a # 7BB1235D
declare @v table(id int)
select top 1 * from tempdb.sys.sysobjects
where name like '#%'
and name not like '%[_]%'
order by crdate desc
select * from @v
Per maggiori informazioni vedi qui: http://support.microsoft.com/kb/305977
modificati la mia risposta, tx – SQLMenace
E 'stata la mia comprensione che, come minimo, la struttura di una variabile di tabella viene sempre creata in TempDB. Quindi, come pointed out by SQLMenace, i dati possono o non possono traboccare.
Per this Microsoft Knowledge Base Article:
Una variabile tabella non è una memoria di sola struttura. Poiché una variabile di tabella potrebbe contenere più dati di quanti possano essere contenuti nella memoria , è necessario che sul disco sia presente una posizione sul disco per memorizzare i dati. Le variabili di tabella sono create nel database tempdb simile a alle tabelle temporanee. Se è disponibile la memoria , vengono create sia le variabili di tabella che le tabelle temporanee e elaborate in memoria (dati cache).
I dati sono sempre conservati su pagine di dati che appartengono a 'tempdb'. Questi possono o non possono essere scritti su disco e se scritti su disco le pagine potrebbero o potrebbero non essere ancora nel pool di buffer. [Alcune dimostrazioni rilevanti alla fine della mia risposta qui] (http://dba.stackexchange.com/a/16386/3690) –
In MS SQL 2014 è stato introdotto un tipo speciale di variabili di tabella "Variabili di tabella ottimizzate per memoria". E non usano tempdb.
- 1. Quando una variabile viene dichiarata in una stored procedure T-SQL, viene mantenuta in memoria o tempdb?
- 2. Le tabelle sono state create con "CREA TABELLA TEMPORANEA" in memoria o su disco?
- 3. Le CTE usano spazi in tempdb?
- 4. Come duplicare una tabella con le chiavi e altre caratteristiche della struttura mantenute in MySQL?
- 5. Java: le variabili globali fanno risparmiare memoria e/o tempo?
- 6. Tabella in memoria in PostgreSQL
- 7. SQL Server Tempdb LOG file in crescita
- 8. Indirizzo di memoria delle variabili in Java
- 9. Variabili statiche Java e ereditarietà e memoria
- 10. Variabili di tabella in Oracle PL/SQL?
- 11. Come si elencano solo le variabili create dall'utente in PowerShell?
- 12. Tabella non esiste dopo CREATE TABLE
- 13. Perché le variabili __block non vengono mantenute (in ambienti non ARC)?
- 14. CREATE TABLE come SELECT - using MEMORY ENGINE (nella memoria RAM)
- 15. Perdita di memoria in android.os.Message e/o Handler.removeCallback?
- 16. phpMyAdmin e SHOW CREATE TABLE
- 17. rifiuti in allocazione di memoria per le variabili locali
- 18. Scadenza memoria tabella di Azure
- 19. E 'più efficiente in termini di memoria impostare le variabili su `None` in python?
- 20. Come distribuire tempdb su più file?
- 21. In quale area di memoria sono create istanze di classi di eccezioni?
- 22. Come si eseguono le variabili scalari in memoria?
- 23. `show create table` equivalent in oracle sql
- 24. Perdita di memoria di chiusura e callback in javascript
- 25. Puntatori e allocazione della memoria in C
- 26. R - ottieni tutte le variabili create dalla funzione chiama
- 27. Variabili tabella con un alias in un'istruzione Elimina da
- 28. Come nascondere le cartelle create in Document Directory in ios?
- 29. Quando utilizzo save !, create! e update_attributes! in Rails?
- 30. Java: genera il codice CREATE TABLE da una tabella esistente
http://dba.stackexchange.com/questions/16385/whats-the-difference-between-a-temp-table-and-table-variable-in-sql-server –