Accedi a Microsoft
Accedi o crea un account.
Salve,
Select a different account.
Hai più account
Scegli l'account con cui vuoi accedere.

Riepilogo

In Microsoft SQL Server 2005, è possibile compattare un file di registro delle transazioni in un database per rimuovere le pagine inutilizzate. Il motore di database riutilizza spazio in modo efficace. Tuttavia, quando un file di registro delle transazioni aumenta in modo imprevisto, potrebbe essere necessario ridurre manualmente il file di registro delle transazioni.

In questo articolo viene descritto come utilizzare l'istruzione DBCC SHRINKFILE per compattare il file di registro delle transazioni manualmente nel modello di recupero completo in un database di SQL Server 2005. Il metodo che consente di compattare il file di registro delle transazioni in SQL Server 2005 può essere diverso dal metodo che consente di compattare il file di registro delle transazioni in SQL Server 2000. Per ulteriori informazioni su come compattare i file registro delle transazioni in SQL Server 2000, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:

272318 compattazione del log delle transazioni in SQL Server 2000 con DBCC SHRINKFILE

Ulteriori informazioni

In SQL Server 2005, un'operazione di compattazione (DBCC SHRINKFILE) tenta di compattare immediatamente il file di registro specificato per la dimensione richiesta. Per compattare il file di registro delle transazioni manualmente nel modello di recupero completo, un backup del log delle transazioni. Quindi, utilizzare l'istruzione DBCC SHRINKFILE per compattare il file di registro delle transazioni.

In genere, la compattazione del log delle transazioni in SQL Server 2005 è superiore rispetto alla compattazione del log delle transazioni in SQL Server 2000. Il motivo è che il gestore del Registro di SQL Server 2005 crea o riutilizza file di log virtuali inattivi seguendo l'ordine di archiviazione disco fisico. Pertanto, la parte inattiva del log delle transazioni è in genere alla fine del file.

Ad esempio, il file di registro potrebbe essere di 100 file di log virtuali e vengono utilizzati solo 2 file di log virtuali. SQL Server 2000 può memorizzare il primo file del log virtuale utilizzato, all'inizio del file registro delle transazioni e il secondo utilizzato file di log virtuale all'interno del file di registro delle transazioni. Per ridurre il file di log delle transazioni solo 2 file di log virtuali, SQL Server riempie la parte restante del secondo file registro virtuali utilizzando le voci di log fittizie. SQL Server sposta l'inizio del log logico successivo disponibile virtuale file di log specificato dal gestore del registro. Il gestore del registro può creare un file di log virtuali all'interno di file registro delle transazioni appena prima l'ultimo file registro virtuale attivo. In tal caso, è necessario utilizzare più operazioni di backup del log e più operazioni di compattazione per compattare correttamente il file di registro delle transazioni a 2 file di log virtuali. Nel peggiore dei casi di questo esempio, potrebbe essere necessario utilizzare le operazioni di backup del log 50 50 e ridurre le operazioni per compattare correttamente il file di registro delle transazioni a 2 file di log virtuali.

In SQL Server 2005, tuttavia, è possibile eseguire un'istruzione DBCC SHRINKFILE per compattare il file di registro delle transazioni immediatamente a 2 file di log virtuali. A tale scopo in quanto la gestione di log di SQL Server 2005 crea file di log virtuali 2 seguendo l'ordine di archiviazione disco fisico. Entrambi i file di log virtuali posizionati all'inizio del file di registro delle transazioni.

Quando si tenta di compattare un file di registro delle transazioni che dispone di poco spazio libero in SQL Server 2005, è necessario eseguire un'operazione di backup di registro aggiuntive. L'operazione di backup di log aggiuntivi tronca il file di registro a una dimensione inferiore. L'operazione di backup del log è oltre i tre passaggi da eseguire per compattare il file di registro delle transazioni in SQL Server 2000. Per ulteriori informazioni, vedere l'articolo della Microsoft Knowledge Base menzionato nella sezione "Sommario". Per compattare un file di registro delle transazioni che dispone di poco spazio libero in SQL Server 2005, attenersi alla seguente procedura:

  1. Eseguire il backup dei file registro delle transazioni per rendere inattiva la maggior parte dei file di log virtuale attivo. Pertanto, è possono rimuovere i file di log virtuali inattivi in un passaggio successivo. A tale scopo, avviare SQL Server Management Studio ed eseguire un'istruzione Transact-SQL che l'istruzione Transact-SQL seguente è simile.

    BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'

    Nota: Nella presente informativa, < DatabaseName > è un segnaposto per il nome del database che esegue il backup e < BackupFile > è un segnaposto per il percorso completo del file di backup.

    Ad esempio, eseguire la seguente istruzione Transact-SQL.

    BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'
  2. Compattare il file di registro delle transazioni. A tale scopo, eseguire un'istruzione Transact-SQL che l'istruzione Transact-SQL seguente è simile.

    DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS

    Nota: Nella presente informativa, < nomefile > è un segnaposto per il nome del file registro delle transazioni e < TargetSize > è un segnaposto per le dimensioni di destinazione che si desidera che i file di registro delle transazioni. La dimensione di destinazione deve essere ragionevole. Ad esempio, non è possibile compattare il file di registro a una dimensione inferiore a 2 file di log virtuali.

  3. Se l'istruzione DBCC SHRINKFILE non compatta il file di registro alla dimensione di destinazione, eseguire l'istruzione BACKUP LOG menzionato nel passaggio 1 per rendere più file di log virtuali inattivi.

  4. Eseguire l'istruzione DBCC SHRINKFILE menzionato nel passaggio 2. Dopo questa operazione, il file di registro delle transazioni dovrebbe essere approssimativamente alle dimensioni di destinazione.

In sintesi, algoritmo del gestore del registro per ottenere il successivo file di log virtuale modificato in SQL Server 2005. Di conseguenza, la compattazione del log delle transazioni in SQL Server 2005 può differire dalla compattazione del log delle transazioni in SQL Server 2000.

  • Se un file di registro dispone di molto spazio disponibile, la compattazione del log delle transazioni in SQL Server 2005 è più la compattazione del log delle transazioni in SQL Server 2000 veloce.

  • Se un file di registro non dispone di alcun spazio libero, la compattazione del log delle transazioni in SQL Server 2005 corrisponde la compattazione del log delle transazioni in SQL Server 2000.

  • Se un file di registro dispone di poco spazio libero, è necessario eseguire un'operazione di backup di log aggiuntivi in SQL Server 2005 che è necessario eseguire in SQL Server 2000.

Riferimenti

Per ulteriori informazioni sulla compattazione del log delle transazioni, visitare il sito Web Microsoft Developer Network (MSDN) la compattazione del Log delle transazioni .


Per ulteriori informazioni sull'istruzione DBCC SHRINKFILE, visitare il sito Web MSDN DBCC SHRINKFILE (Transact-SQL) .


Per ulteriori informazioni sul troncamento del log di transazione, visitare il sito Web MSDN Il troncamento del Log delle transazioni .

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×