SQL Server ha una serie di impostazioni automatiche che lo rendono uno dei database servers più facili da mantenere. Ciò nonostante, alcune delle opzioni automatiche andrebbero lasciate disattivate, per non incorrere in problemi di performance: ad esempio l’opzione AUTO SHRINK.
Come dice il nome stesso, questa opzione consente al motore di SQL Server di compattare un database quando lo spazio disponibile supera una certa soglia. In questo modo, viene ridotta la dimensione dei files fisici e quindi l’occupazione sul disco.
Attenzione, però! La compattazione di un database può generare una frammentazione negli indici, soprattutto quando questa operazione viene svolta frequentemente. Ne parla in maniera approfondita Paul Randal in questo post. Per questo motivo l’operazione di shrinking non dovrebbe essere fatta, salvo in scenari in cui lo spazio viene liberato in maniera definitiva (ad esempio con una TRUNCATE o DELETE massiva e senza la reintroduzione della stessa mole di dati). Essendo questa una operazione solitamente rara, è possibile disabilitare l’opzione AUTO SHRINK ed effettuare manualmente lo shrinking del database e la ricostruzione degli indici a seguire.