Come si manifesta
TempDB contention non significa solo “TempDB grande”. I segnali tipici sono wait elevati su PAGELATCH_*, query che peggiorano improvvisamente durante picchi concorrenti, spill massivi su sort e hash, version store in crescita e sessioni che sembrano bloccate pur senza evidenti deadlock applicativi.
Cosa controllare subito
- Wait statistics — verifica la presenza di
PAGELATCH_UPePAGELATCH_EXsu pagine TempDB come segnale di contention interna. - Numero e dimensione dei file — un solo file o file con crescita incoerente aumentano la probabilità di contention su allocation map.
- Query con spill — Query Store, actual execution plan o Extended Events aiutano a individuare operatori che riversano su TempDB per grants insufficienti.
- Version store — snapshot isolation, RCSI e transazioni lunghe possono mantenere versioni attive molto più del previsto.
Quando non è TempDB
Non ogni lentezza con wait elevati nasce qui. Se i segnali principali sono CPU costantemente satura, I/O disco dati, blocking da lock applicativi o memory grants in coda senza spill rilevanti, il collo di bottiglia potrebbe stare altrove.
Controlli utili da fare subito
- Verifica wait e pagine coinvolte per confermare che la contention sia interna a TempDB.
- Controlla file count, dimensioni e autogrowth per evitare crescita disallineata.
- Isola le query con spill e le sessioni che gonfiano il version store.
- Confronta il problema con la concorrenza reale e gli orari di picco.
Errori che portano fuori strada
Il primo errore è aumentare CPU o RAM senza capire se il problema nasce da query inefficienti o da una configurazione TempDB sbagliata. Il secondo è moltiplicare i file senza criterio: il numero corretto dipende dalla concorrenza reale e dalla versione di SQL Server, non da una formula rigida applicata ovunque.
Remediation efficace
Le azioni che danno più valore sono: allineare dimensione e autogrowth dei file TempDB, correggere query con spill o grants errati, rivedere indici e statistiche, e monitorare il version store nei workload che usano snapshot isolation. Senza questa analisi, TempDB torna a saturarsi anche dopo un upgrade infrastrutturale.
Domande frequenti
Aumentare il numero di file risolve sempre?
No. Aiuta solo se il problema è davvero contention interna su allocation map e se il resto della configurazione è coerente.
TempDB contention può comparire solo in certe finestre?
Sì. Spesso emerge con particolari job, picchi concorrenti o query che riversano su TempDB solo in condizioni specifiche.
