Condividi tramite


Espansione di un database

Per impostazione predefinita, in SQL Server è possibile espandere automaticamente un database in base ai parametri di aumento delle dimensioni definiti alla creazione del database. È inoltre possibile espandere manualmente un database allocando spazio aggiuntivo in un file di database esistente o creando un nuovo file. L'espansione dello spazio dei dati o del log delle transazioni può risultare necessaria se lo spazio disponibile nei file esistenti si sta esaurendo. Se lo spazio allocato a un database è già esaurito e non è consentito l'aumento di dimensioni automatico per tale database, viene generato l'errore 1105. Questa situazione si può verificare se il database non è impostato per l'aumento delle dimensioni automatico o se non è disponibile una quantità sufficiente di spazio sul disco rigido.

Durante l'espansione di un database, è necessario aumentarne le dimensioni di almeno 1 megabyte (MB). Quando un database viene espanso, lo spazio aggiunto viene immediatamente reso disponibile per il file di dati o i file del log delle transazioni, a seconda del file espanso. Quando si espande un database, è consigliabile specificare il valore massimo consentito per l'aumento delle dimensioni del file. Questa operazione impedisce l'aumento delle dimensioni del file fino all'esaurimento dello spazio su disco. Per specificare le dimensioni massime per il file, utilizzare il parametro MAXSIZE dell'istruzione ALTER DATABASE oppure l'opzione Limite aumento in MB quando si utilizza la finestra di dialogo Proprietà in SQL Server Management Studio per espandere il database. L'espansione di un database per aumentare lo spazio per il log delle transazioni segue lo stesso processo.

Se non è stato impostato l'aumento delle dimensioni automatico per il log delle transazioni, quest'ultimo potrebbe esaurire lo spazio disponibile se nel database vengono eseguiti determinati tipi di attività. Se ad esempio il modello di recupero del database è impostato su FULL, l'esecuzione di operazioni bulk su larga scala, ad esempio l'importazione bulk o la creazione di indici, può determinare il rapido esaurimento dello spazio disponibile nel log. Oltre ad aumentare le dimensioni del log delle transazioni, è possibile troncare il file di log. Il troncamento del log elimina il file di transazioni non attive di cui è stato eseguito il commit e consente a Motore di database di SQL Server di riutilizzare questa parte inutilizzata del log delle transazioni. Le modalità e i tempi per il troncamento del log dipendono dal modello di recupero del database. Per ulteriori informazioni sul troncamento del log delle transazioni, vedere Troncamento del log delle transazioni.

Espansione di tempdb

Per impostazione predefinita, le dimensioni del database tempdb aumentano automaticamente se è necessario più spazio, in quanto il valore MAXSIZE dei file è impostato su UNLIMITED. Le dimensioni di tempdb, pertanto, possono continuare ad aumentare fino a quando lo spazio sul disco che include tempdb non viene esaurito.

Benché sia possibile impedire l'aumento illimitato delle dimensioni di tempdb impostando un parametro MAXSIZE per tempdb, questa operazione non è consigliata. La limitazione delle dimensioni di tempdb può fare sì che il database esaurisca lo spazio del disco e provocare interruzioni significative nell'ambiente di produzione, nonché impedire il completamento delle operazioni delle applicazioni in esecuzione. Se è stato impostato un parametro MAXSIZE per tempdb e si desidera aumentare le dimensioni di tempdb, è necessario eseguire una delle operazioni seguenti:

  • Aumentare le dimensioni dei file inclusi nel filegroup predefinito utilizzato da tempdb.

  • Aggiungere un nuovo file al filegroup predefinito.

  • Consentire l'aumento di dimensioni automatico dei file utilizzati da tempdb.

    Nota importanteImportante

    tempdb non può includere filegroup definiti dall'utente.

Per ulteriori informazioni, vedere Database tempdb.

Per aumentare le dimensioni di un database

Per modificare la posizione fisica di un database