Mentre restringersi è davvero pericoloso per i motivi menzionati qui. C'è un mezzo felice tra la risposta di Jimbo e la risposta di John ... Dovresti sempre considerare seriamente se vuoi ridurre il tuo database o meno.
In un mondo ideale, creeresti il tuo DB con molto spazio libero in cui crescere. Chiamo questo "dimensionamento corretto" il tuo database. Permetteresti a questo spazio libero di essere lì e non sforzarti di restituirlo e mantenere la dimensione totale giusta alla dimensione usata .. Perché? Perché alla fine il tuo database crescerà di nuovo .. Poi ti ridurrai di nuovo .. E rimarrai bloccato in questo orribile schema di inutili riduzioni seguite da crescite - e per tutto il tempo, come alcuni hanno sottolineato, sarai aumentando la frammentazione dell'indice.
Ho scritto un blog su questo in cui ho ammonito la gente a " Non toccare quel pulsante di restringimento! " Ma a volte ... A volte è necessario. Se disponi di un database di grandi dimensioni, hai appena liberato spazio significativo e non prevedi di ricrescerti mai - beh, allora va bene considerare la riduzione come operazione unica una volta che puoi occuparti della frammentazione dell'indice in seguito attraverso la ricostruzione loro. L'operazione di restringimento può richiedere molto tempo, quindi ti consigliamo di pianificarla per un periodo in cui puoi pagare quel prezzo di una corsa di contrazione. L'approccio della creazione di un DB vuoto e della copia dei dati in esso funziona, ma ciò può diventare molto difficile con database più grandi e molti dati.
Se hai intenzione di aggiungere di nuovo quello spazio al DB attraverso l'utilizzo normale e i modelli di crescita in futuro, allora potresti voler lasciare lo spazio lì.
Anche
Hai detto di aver "cancellato" il registro delle transazioni. Sarei curioso di sapere come hai fatto, ma mentre leggi il post che ho condiviso e gli altri della serie vedrai alcuni suggerimenti sulla gestione del registro delle transazioni. Ma in breve: se si è in modalità di ripristino completo, è necessario eseguire backup regolari del registro per mantenere il registro stesso in uso. Altrimenti, senza backup di log in modalità Completa, il file di registro continua a crescere e crescere e crescere e salva sempre ciò che hai fatto perché hai detto a SQL che non vuoi solo mantenere quel registro per il recupero da crash ma vuoi mantenere un backup manuale di esso per ripetere le transazioni / annullare le transazioni per ripristinare in un determinato momento nel tempo a fini di recupero ... Se si è semplici e si vede crescere eccessivamente il registro,BEGIN TRAN ... do work.... COMMIT TRAN
o se hai appena rilasciato una grande DELETE
dichiarazione e cancellato un intero casino di dati in una transazione implicita.)
Suppongo anche che tu stia cercando questo spazio libero sul tuo file system. Se lo stai cercando in SQL e all'interno di quel file di grandi dimensioni che hai - potrebbe essere che stai aspettando il completamento della pulizia fantasma se stai cercando immediatamente dopo l'operazione. Blog di Paul Randal su Ghost Cleanup .