Vai al contenuto principale
Tabella dei contenuti
< All Topics
Print

Dimensione esccessiva snapshot Server Win MS-SQL Server

Analisi di DataBase Server MS-SQL su Server Windows

In alcune condizioni su server windows adibiti a database MS-SQL Server, potrebbe verificarsi un uso eccessivo di risorse disco causato dalla snapshot automatiche si sistema. Questa è una condizione abbastanza comune con i Database Server MS-SQL.
Di seguito una analisi di una condizione tipo e alcuni suggerimenti per ovviare al problema

🔹 Situazione attuale:

  • 1 solo disco → tutto (.mdf, .ldf, tempDB, OS) finisce nella stessa snapshot
  • Crescita snapshot 60–70 GB/giorno → significa che molti blocchi vengono modificati ogni giorno
  • Indice e manutenzione non confermata → potrebbe esserci un index rebuild giornaliero che riscrive tutto

🔹 Perché la snapshot cresce così tanto

  1. Il transaction log (.ldf) viene scritto continuamente. Anche se è “solo 50 GB”, ogni giorno ci sono nuove transazioni → snapshot salva blocchi modificati.
  2. Se SQL fa index rebuild, riscrive intere tabelle → molti blocchi modificati.
  3. TempDB sullo stesso disco → operazioni temporanee pesano sullo snapshot.

Con un solo disco, ogni scrittura colpisce la snapshot, quindi anche piccole operazioni moltiplicate per grandi file diventano 60–70 GB al giorno.


🔹 Come ridurre lo spazio delle snapshot

  1. Separare i dischi
    • .mdf (dati) → disco principale → snapshot
    • .ldf (log) e tempDB → disco separato → non incluso nella snapshot
    • In un solo disco non è possibile fare questo → soluzione limitata
  2. Ridurre l’attività sul log
    • Se non serve point-in-time recovery, cambiare il recovery model a SIMPLE:

Altrimenti, fare backup log frequenti e poi shrink del .ldf:

  1. Controllare manutenzione indici
    • Index rebuild = riscrive tutto → se fate rebuild giornaliero su tabelle grandi, aumenta enormemente la snapshot
    • Meglio usare index reorganize o rebuild solo su tabelle frammentate > 30%
  2. TempDB su disco separato
    • Assicurati che tempDB sia ottimizzato: dimensioni fisse e autogrowth limitato