Il TEMPDB e la sua configurazione.. pronti per le Ferie?

Innanzitutto grazie per le tante visualizzazioni ricevute!


Anche perchè diciamocelo, siamo in un periodo, quello a ridosso delle ferie estive, che certo non invoglia letture profonde e complicate.
Già certo, proprio non mi immagino qualcuno a leggere questo mio articolo sotto l’ombrellone!
Cercherò quindi di essere chiaro, conciso ...insomma breve.

Nello scorso articolo ho cercato di spiegare perché il database TEMPDB di SQL SERVER è importante.
Oggi, per continuare questo discorso vorrei raccontarvi qualcosa su come configurarlo correttamente. 

 

Configurare il database TempDB correttamente

Premesso che è sempre preferibile farlo risiedere sul disco più veloce di cui si dispone iniziamo dicendo che per impostarlo occorre prima di tutto eseguire il SQL Server Management Studio (SMSS). 

Dopo aver trovato tra i database di sistema il nostro TEMPDB fare tasto destro e scegliere la voce proprietà:

 



Si apre una finestra che ci mostra i due file fisici di cui è composto il database TEMPDB:

 

Nelle versioni meno recenti di SQL Server vengono creati due file.
Un file dati ed un file di log.

Innanzitutto le dimensioni dei due file sono minime.
Quello che succede è che appena i dati superano questa dimensione il sistema operativo sarà costretto ad aumentarne la dimensione.
Se questa operazione di resizing è frequenza avremo un decadimento delle prestazioni.

Per questo motivo è consigliabile dimensionare correttamente nel momento dell'installazione la loro dimensione.
L'obiettivo finale è quello di dimensionare i files in modo tale questa operazione di aumento delle dimensioni non avvenga mai oppure avvenga raramente.

Altro aspetto.

I server al giorno d'oggi dispongono di un numero di processori elevato.
Se però il file dati del TEMPDB è uno solo sarà comunque uno solo dei processori ad occuparsi di scrivere in questo file.

Da questo nasce l'idea di creare un file dati del TEMPDB per processore oppure ogni 2 o 4 processori.
Nell'immagine sotto sono stati creati 4 file su un server dotato di 8 processori.


Importante aspetto è quello di dimensionare i files tutti della stessa dimensione e incremento della dimensione.
Solo solo in questo modo SQL Server scriverà dentro di essi in modo parallelo.

Si dice in gergo che SQL Server adotta una logica di "Round Robin" ma per oggi non andiamo troppo in dettaglio ....è pur sempre fine luglio!

Un ultimo ma importante consiglio: se non abbiamo nessun problema di performance non andiamo a modificare la configurazione.
Solo per abbiamo problemi di prestazioni e se vediamo che il collo di bottiglia è proprio il TEMPDB allora Si!

Come dite? Come fare per determinare se il problema delle nostre scarse performance dipende dal TEMPDB?
Bhe, questo sarà argomento di un prossimo articolo..

A presto!


Luca Biondi @ SQLServerPerformance blog!

 
 
 



 

Comments

I Post più popolari

SQL Server, execution plan and the lazy spool (clearly explained)

SQL Server, datetime vs. datetime2

La clausola NOLOCK. Approfondiamo e facciamo chiarezza!