Database tempdb
Data aggiornamento: 14 aprile 2006
Il database di sistema tempdb è una risorsa globale disponibile a tutti gli utenti connessi all'istanza di SQL Server e viene utilizzata per contenere gli elementi seguenti:
- Oggetti utente temporanei creati in modo esplicito, ad esempio tabelle temporanee globali o locali, stored procedure temporanee, variabili di tabella o cursori.
- Oggetti interni creati dal Motore di database di SQL Server 2005, ad esempio tabelle di lavoro in cui archiviare i risultati intermedi delle operazioni di spooling o di ordinamento.
- Versioni di riga generate dalle transazioni di modifica dei dati in un database in cui viene utilizzato il Read committed tramite isolamento delle versioni delle righe o transazioni di isolamento dello snapshot.
- Versioni di riga generate dalle transazioni di modifica dei dati per le funzionalità, ad esempio le operazioni sugli indici in linea, la funzionalità MARS (Multiple Active Result Set) e i trigger AFTER.
In tempdb viene registrato un numero minimo di operazioni ai fini del rollback delle transazioni. tempdb viene creato nuovamente a ogni avvio di SQL Server in modo che il sistema venga sempre avviato con una copia pulita del database. Poiché le tabelle e le stored procedure temporanee vengono eliminate automaticamente al momento della disconnessione e poiché al momento della chiusura del sistema non vi sono connessioni attive, nessuna parte del database tempdb viene salvata per le sessioni successive di SQL Server. Le operazioni di backup e di ripristino non sono consentite nel database tempdb.
Proprietà fisiche di tempdb
Nella tabella seguente sono elencati i valori iniziali di configurazione dei dati e dei file di log di tempdb. Le dimensioni di questi file possono variare leggermente a seconda dell'edizione di SQL Server 2005.
File | Nome logico | Nome fisico | Aumento di dimensioni del file |
---|---|---|---|
Dati primari |
tempdev |
tempdb.mdf |
Crescita automatica del 10% fino a quando il disco risulta pieno |
Log |
templog |
templog.ldf |
Aumento automatico delle dimensioni del 10% fino a un massimo di 2 TB |
Le dimensioni del database tempdb possono influire sulle prestazioni di un sistema. Se ad esempio le dimensioni di tempdb sono eccessivamente ridotte, è possibile che l'elaborazione del sistema sia troppo occupata con l'aumento automatico delle dimensioni del database per supportare i requisiti del carico di lavoro a ogni avvio di SQL Server. Per ovviare a questo overhead, aumentare le dimensioni di tempdb. Per ulteriori informazioni, vedere Ottimizzazione delle prestazioni di tempdb e Pianificazione delle capacità per tempdb.
Miglioramenti delle prestazioni in tempdb
In SQL Server 2005 le prestazioni di tempdb sono state migliorate come segue:
- È possibile memorizzare nella cache tabelle temporanee e variabili di tabella. La memorizzazione nella cache consente di eseguire molto rapidamente le operazioni di eliminazione e creazione degli oggetti temporanei e di ridurre i problemi di contesa nell'allocazione delle pagine.
- Il protocollo di latch delle pagine di allocazione è stato migliorato. In questo modo è possibile ridurre il numero di latch di aggiornamento (UP) utilizzati.
- L'overhead di registrazione per il database tempdb è stato ridotto. In questo modo si riduce l'utilizzo di banda per operazioni di I/O su disco nel file di log di tempdb.
- L'algoritmo per l'allocazione delle pagine miste in tempdb è stato migliorato.
Spostamento dei dati e dei file di log di tempdb
Per spostare i dati e i file di log di tempdb, vedere Spostamento dei database di sistema.
Opzioni di database
Nella tabella seguente sono elencati i valori predefiniti delle singole opzioni di database di tempdb e viene indicato se l'opzione è modificabile. Per visualizzare le impostazioni correnti di queste opzioni, utilizzare la vista del catalogo sys.databases.
Opzione di database | Valore predefinito | Modificabile |
---|---|---|
ALLOW_SNAPSHOT_ISOLATION |
OFF |
Sì |
ANSI_NULL_DEFAULT |
OFF |
Sì |
ANSI_NULLS |
OFF |
Sì |
ANSI_PADDING |
OFF |
Sì |
ANSI_WARNINGS |
OFF |
Sì |
ARITHABORT |
OFF |
Sì |
AUTO_CLOSE |
OFF |
No |
AUTO_CREATE_STATISTICS |
ON |
Sì |
AUTO_SHRINK |
OFF |
No |
AUTO_UPDATE_STATISTICS |
ON |
Sì |
AUTO_UPDATE_STATISTICS_ASYNC |
OFF |
Sì |
CONCAT_NULL_YIELDS_NULL |
OFF |
Sì |
CURSOR_CLOSE_ON_COMMIT |
OFF |
Sì |
CURSOR_DEFAULT |
GLOBAL |
Sì |
Opzioni relative alla disponibilità del database |
ONLINE MULTI_USER READ_WRITE |
No No No |
DATE_CORRELATION_OPTIMIZATION |
OFF |
Sì |
DB_CHAINING |
ON |
No |
NUMERIC_ROUNDABORT |
OFF |
Sì |
PAGE_VERIFY |
NONE |
No |
PARAMETERIZATION |
SIMPLE |
Sì |
QUOTED_IDENTIFIER |
OFF |
Sì |
READ_COMMITTED_SNAPSHOT |
OFF |
No |
RECOVERY |
SIMPLE |
No |
RECURSIVE_TRIGGERS |
OFF |
Sì |
Opzioni relative a Service Broker |
ENABLE_BROKER |
Sì |
TRUSTWORTHY |
OFF |
No |
Per una descrizione di queste opzioni di database, vedere ALTER DATABASE (Transact-SQL).
Restrizioni
Di seguito sono riportate le operazioni che non è possibile eseguire sul database tempdb:
- Aggiunta di filegroup.
- Backup o ripristino del database.
- Modifica delle regole di confronto. Le regole di confronto predefinite corrispondono a quelle del server.
- Modifica del proprietario del database. Il proprietario del database tempdb è dbo.
- Creazione di uno snapshot del database.
- Eliminazione del database.
- Eliminazione dell'utente guest dal database.
- Partecipazione al mirroring del database.
- Rimozione del filegroup primario, del file di dati primario o del file di log.
- Ridenominazione del filegroup primario o del database.
- Esecuzione di DBCC CHECKALLOC.
- Esecuzione di DBCC CHECKCATALOG.
- Impostazione del database su OFFLINE.
- Impostazione del filegroup primario o del database su READ_ONLY.
Vedere anche
Attività
Risoluzione dei problemi relativi allo spazio su disco insufficiente in tempdb
Concetti
Ottimizzazione delle prestazioni di tempdb
Pianificazione delle capacità per tempdb
tempdb e creazione dell'indice
Database di sistema.
Altre risorse
sys.databases (Transact-SQL)
sys.master_files (Transact-SQL)
Spostamento dei file del database
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
14 aprile 2006 |
|
5 dicembre 2005 |
|