SQL Server & come spostare il database TEMPDB
Finisco con oggi il terzo e ultimo articolo sul database TEMPDB.
Abbiamo già detto che cosa cos'è, a che cosa serve e perchè è importante.
Abbiamo poi parlato di come impostarlo correttamente.
Oggi vediamo come spostarlo da una cartella ad un altra oppure da un disco ad un altro.
Perchè potrebbe essere necessario spostarlo?
Potremmo aver messo il database su un disco dedicato ed il disco non è sufficientemente spazioso.
Potremmo più probabilmente avere problemi di prestazioni e dopo un accurata analisi essere arrivati a capire che il collo di bottiglia è proprio il nostro TEMPDB.
In questi casi una possibilità è quella di spostare il database TEMP su di un disco più veloce!
A proposito oggi il miglior disco che posso consigliare è un disco con tecnologia SSD e di classe enterprise.
Vediamo ora come effettuare lo spostamento del database TEMPDB.
Spostare il database TempDB
Per prima cosa osserviamo di quanti files è costituito il nostro database.
Dal management Studio (SMSS) di SQL Server scriviamo:
USE TempDB GO EXEC sp_helpfile GO
Nel nostro caso abbiamo un solo file dati ed un solo file di log che si trovano nel percorso indicato dal campo filename. Potremmo tuttavia averne un certo numero.
Adesso, andiamo sul database MASTER e, per ognuno dei file che abbiamo individuato, procediamo con lo spostamento.
Ad esempio:
In rosso è indicato il nuovo percorso (FILENAME=)
USE master
GO
ALTER DATABASE TempDB MODIFY FILE
(NAME = tempdev, FILENAME = 'd:\datatempdb.mdf')
GO
ALTER DATABASE TempDB MODIFY FILE
(NAME = templog, FILENAME = 'e:\datatemplog.ldf')
GO
Occorre prestare solo attenzionead indicare un percorso che esista effettivamente.Per concludere l'operazione sarò sufficiente riavviare l'istanza di SQL Server.
FIno a che non si è riavviato non verrà applicata nessuna modifica alla configurazione.
Bene per oggi è tutto!
Il prossimo articolo prometto di dedicarlo ad un argomento molto più interessante..
SO STAY TUNED!
Se avete dubbi scrivetemi o commentate questo articolo.
Luca Biondi @ SQLServerPerformance blog!
Next post: Scrivere Query performanti ...la tua Query è SARGABLE?
Previous post: Il TEMPDB e la sua configurazione.. pronti per le Ferie?
Ciao Luca,
ReplyDeleteuna cosa non ho chiara, io ho 4 file DB di cui il primo inizia a 136MB e gli altri 3 a 4616MB quetsa configurazione è errata? Ovviamente me la sono ritrovata cosi dal fornitore.
E soprattutto questo TempDB non rilascia mai le risorse fino a saturare il disco, quali sono le possibili cause di questa tipologia di problema?
Grazie
Ciao,
DeleteNon vedendo e non potendomi collegare posso solo dirti...
1) Se non hai problemi di prestazioni lascierei così com'è il tempdb altrimenti prova di leggere tra i miei post come configurarlo correttamente ad.esempio:
https://sqlserverperformace.blogspot.com/2019/07/il-tempdb-e-la-sua-configurazione.html
oppure
https://sqlserverperformace.blogspot.com/2019/07/cose-il-database-tempdb-e-quindi-perche.html
2) Se il TempDb cresce a dismisura ma backuppandolo si riduce allora occorre impostare il modello di recupero "Con registrazione minima"
3) Se il TempDb cresce ma il modello di recupero (ci arrivi dal nome del databasem tasto destro proprietà..) è già "Con registrazione minima" forse c'è qualche procedura che apre una transazione e non la chiude. Ma bisognerebbe indagare..
Ciao,
Luca