Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il database di sistema tempdb è una risorsa globale disponibile per tutti gli utenti connessi all'istanza di SQL Server e viene usata per contenere quanto segue:
Oggetti utente temporanei creati in modo esplicito, come tabelle temporanee globali o locali, procedure memorizzate temporanee, variabili di tabella o cursori.
Oggetti interni creati dal motore di database di SQL Server, ad esempio tabelle di lavoro per archiviare i risultati intermedi per gli spool o l'ordinamento.
Versioni di riga generate dalle transazioni di modifica dei dati in un database che utilizza la modalità di isolamento read-committed con controllo delle versioni delle righe o la modalità di isolamento snapshot.
Versioni di riga generate dalle transazioni di modifica dei dati per funzionalità, come: operazioni sugli indici online, set di risultati attivi multipli (MARS) e trigger AFTER.
Le operazioni all'interno di tempdb vengono registrate in modo minimo. In questo modo è possibile eseguire il rollback delle transazioni. Tempdb viene ricreato ogni volta che SQL Server viene avviato in modo che il sistema inizi sempre con una copia pulita del database. Le tabelle temporanee e le stored procedure vengono eliminate automaticamente alla disconnessione, e quando il sistema viene arrestato, non vi sono connessioni attive. Di conseguenza, non c'è mai nulla in tempdb che debba essere salvato da una sessione di SQL Server all'altra. Le operazioni di backup e ripristino non sono consentite in tempdb.
Proprietà fisiche di tempdb
Nella tabella seguente sono elencati i valori di configurazione iniziali dei file di dati e di log tempdb . Le dimensioni di questi file possono variare leggermente per le diverse edizioni di SQL Server.
Documento | Nome logico | Nome fisico | Aumento di dimensioni del file |
---|---|---|---|
Dati primari | tempdev | tempdb.mdf | Crescita automatica del 10% finché il disco non raggiunge il suo limite. |
Registro | templog | templog.ldf | Aumento automatico del 10% a un massimo di 2 terabyte |
Le dimensioni di tempdb possono influire sulle prestazioni di un sistema. Ad esempio, se le dimensioni di tempdb sono troppo piccole, l'elaborazione del sistema potrebbe essere troppo occupata con la scalabilità automatica del database per supportare il requisito del carico di lavoro ogni volta che si avvia SQL Server. È possibile evitare questo sovraccarico aumentando le dimensioni di tempdb.
Miglioramenti delle prestazioni in tempdb
In SQL Server le prestazioni di tempdb sono migliorate nei modi seguenti:
Le tabelle temporanee e le variabili di tabella possono essere memorizzate nella cache. La memorizzazione nella cache consente l'esecuzione molto rapida di operazioni che eliminano e creano oggetti temporanei, riducendo la contesa per l'allocazione delle pagine.
Il protocollo di latch delle pagine di allocazione è migliorato. In questo modo viene ridotto il numero di latch UP (aggiornamento) usati.
Il sovraccarico di registrazione per tempdb è ridotto. In questo modo si riduce il consumo della larghezza di banda di I/O del disco nel file di log tempdb .
L'algoritmo per l'allocazione di pagine miste in tempdb è stato migliorato.
Spostamento dei file di dati e di log tempdb
Per spostare i file di dati e di log tempdb , vedere Spostare i database di sistema.
Opzioni database
La tabella seguente elenca il valore predefinito per ogni opzione di database nel database tempdb e indica se è possibile modificare l'opzione. Per visualizzare le impostazioni correnti di queste opzioni, usare la vista del catalogo sys.databases .
Opzione di database | Valore predefinito | Modificabile |
---|---|---|
ALLOW_SNAPSHOT_ISOLATION | SPENTO | Sì |
ANSI_NULL_DEFAULT (Impostazione predefinita per ANSI NULL) | SPENTO | Sì |
ANSI_NULLS | SPENTO | Sì |
ANSI_PADDING (impostazione di riempimento ANSI) | OFF | Sì |
ANSI_WARNINGS | SPENTO | Sì |
ARITHABORT | SPENTO | Sì |
CHIUSURA_AUTOMATICA | SPENTO | NO |
CREA_AUTOMATICAMENTE_STATISTICHE | ATTIVO | Sì |
AUTO_SHRINK | SPENTO | NO |
AGGIORNAMENTO_AUTOMATICO_STATISTICHE | ATTIVO | Sì |
AUTO_UPDATE_STATISTICS_ASYNC | SPENTO | Sì |
Tracciamento Modifiche | SPENTO | NO |
CONCAT_NULL_YIELDS_NULL (Quando concatenato a NULL, il risultato è NULL) | SPENTO | Sì |
CHIUSURA_CURSORI_SUL_COMMIT | SPENTO | Sì |
CURSORE_PREDEFINITO | GLOBALE | Sì |
Opzioni di disponibilità del database | ONLINE multiutente LETTURA_SCRITTURA |
NO NO NO |
OTTIMIZZAZIONE_CORRELAZIONE_DATE | SPENTO | Sì |
DB_CHAINING | ATTIVO | NO |
CRIPTAZIONE | SPENTO | NO |
NUMERIC_ROUNDABORT | SPENTO | Sì |
PAGE_VERIFY | CHECKSUM per le nuove installazioni di SQL Server. NONE per gli aggiornamenti di SQL Server. |
Sì |
PARAMETRIZZAZIONE | SEMPLICE | Sì |
IDENTIFICATORE_QUOTATO | SPENTO | Sì |
READ_COMMITTED_SNAPSHOT (istantanea impegnata letta) | SPENTO | NO |
GUARIGIONE | SEMPLICE | NO |
Trigger Ricorsivi | SPENTO | Sì |
Opzioni di Service Broker | ENABLE_BROKER | Sì |
AFFIDABILE | SPENTO | NO |
Per una descrizione di queste opzioni di database, vedere Opzioni ALTER DATABASE SET (Transact-SQL).
Restrizioni
Non è possibile eseguire le operazioni seguenti nel database tempdb :
Aggiunta di filegroup.
Backup o ripristino del database.
Modifica della collazione. La collatione predefinita è quella del server.
Modifica del proprietario del database. tempdb è di proprietà di sa.
Creazione di uno snapshot del database.
Eliminazione del database.
Eliminazione dell'utente guest dal database.
Abilitazione del Change Data Capture.
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 database o del filegroup primario su READ_ONLY.
Autorizzazioni
Qualsiasi utente può creare oggetti temporanei in tempdb. Gli utenti possono accedere solo ai propri oggetti, a meno che non ricevano autorizzazioni aggiuntive. È possibile revocare l'autorizzazione di connessione a tempdb per impedire a un utente di usare tempdb, ma questa operazione non è consigliata perché alcune operazioni di routine richiedono l'uso di tempdb.
Contenuto correlato
Opzione SORT_IN_TEMPDB per gli indici
sys.master_files (Transact-SQL)