Gestione delle dimensioni del file di log delle transazioni
In alcuni casi, può essere utile modificare le dimensioni di un file di log fisico.
Monitoraggio dell'utilizzo dello spazio del log
È possibile monitorare l'utilizzo dello spazio del log mediante DBCC SQLPERF (LOGSPACE). Questo comando restituisce informazioni sulla quantità di spazio del log attualmente utilizzata e indica quando il log delle transazioni deve essere troncato. Per ulteriori informazioni, vedere DBCC SQLPERF (Transact-SQL). Per informazioni sulle dimensioni correnti di un file di log, sulle relative dimensioni massime e sull'opzione di aumento automatico dimensioni per il file, è anche possibile utilizzare le colonne size, max_size e growth per il file di log in sys.database_files. Per ulteriori informazioni, vedere sys.database_files (Transact-SQL).
Importante |
---|
È consigliabile evitare l'overload del disco per il log. |
Compattazione del file di log
Il troncamento del log è essenziale in quanto libera spazio sul disco per il riutilizzo, ma non riduce le dimensioni del file di log fisico. Per ridurre le dimensioni fisiche del file di log, è necessario compattarlo per rimuovere uno o più file di log virtuali che non contengono alcuna parte del log logico, ovvero file di log virtuali inattivi. Quando si compatta un file di log delle transazioni, viene rimosso dalla fine del file di log un numero di file di log virtuali inattivi sufficiente a ridurre il log approssimativamente alle dimensioni di destinazione. Per ulteriori informazioni, vedere Compattazione del log delle transazioni.
[!NOTA]
Fattori come una transazione con esecuzione prolungata, che mantiene i file di log virtuali attivi per un lungo periodo di tempo, possono limitare in tutto o in parte la compattazione del log. Per ulteriori informazioni, vedere Fattori che possono ritardare il troncamento del log..
Per ulteriori informazioni, vedere Compattazione del log delle transazioni.
Aggiunta o aumento delle dimensioni di un file di log
In alternativa, è possibile guadagnare spazio aumentando le dimensioni del file di log esistente, se lo spazio è sufficiente, oppure aggiungendo un file di log al database, in genere in un disco diverso.
Per aggiungere un file di log al database, utilizzare la clausola ADD LOG FILE dell'istruzione ALTER DATABASE. L'aggiunta di un file di log consente l'aumento delle dimensioni del log. Per informazioni sull'aggiunta di file, vedere Aggiunta ed eliminazione di file di dati e del log delle transazioni.
Per aumentare le dimensioni del file di log, utilizzare la clausola MODIFY FILE dell'istruzione ALTER DATABASE, specificando la sintassi SIZE e MAXSIZE. Per ulteriori informazioni, vedere ALTER DATABASE (Transact-SQL).
Ottimizzazione delle dimensioni del log delle transazioni di tempdb
Il riavvio di un'istanza del server riporta il log delle transazioni del database tempdb alle dimensioni originali, antecedenti all'aumento automatico delle dimensioni. Questo può comportare una riduzione delle prestazioni del log delle transazioni di tempdb. Per evitare tale overhead, è possibile incrementare le dimensioni del log delle transazioni di tempdb dopo l'avvio o il riavvio dell'istanza del server. Per ulteriori informazioni, vedere Database tempdb e Ottimizzazione delle prestazioni di tempdb.
Controllo delle dimensioni di un file di log delle transazioni
È possibile utilizzare l'istruzione ALTER DATABASE (Transact-SQL) per gestire la crescita di un file di log delle transazioni. Tenere presente quanto segue:
Per modificare le dimensioni del file corrente in unità KB, MB, GB e TB, utilizzare l'opzione SIZE.
Per modificare l'incremento di crescita, utilizzare l'opzione FILEGROWTH. Il valore 0 indica che l'aumento automatico delle dimensioni è disattivato e non è consentita l'allocazione di spazio aggiuntivo.
Per controllare le dimensioni massime di un file di log in unità KB, MB, GB e TB o per impostare la crescita su UNLIMITED, utilizzare l'opzione MAXSIZE.