SQL Server & come spostare il database TEMPDB

Cari lettori,


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?

Comments

  1. Ciao Luca,
    una 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

    ReplyDelete
    Replies
    1. Ciao,
      Non 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

      Delete

Post a Comment

I Post più popolari

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

SQL Server, datetime vs. datetime2

How to solve EXECUTE Permission denied on object 'sp_send_dbmail'