Come compattare i file di registro delle transazioni in SQL Server 2005

Identificativo articolo: 907511 - Visualizza i prodotti a cui si riferisce l?articolo.
Se un cliente di Small Business, trovare ulteriori risorse di formazione e di risoluzione dei problemi di Supporto per le piccole aziende sito.
Espandi tutto | Chiudi tutto

Sommario

Microsoft SQL Server 2005, è possibile compattare un file di registro delle transazioni in un database per rimuovere le pagine inutilizzate. Riutilizza il motore di database lo spazio in modo efficace. Tuttavia, quando un file di registro delle transazioni aumenta in modo imprevisto, è possibile Per compattare manualmente il file di registro delle transazioni.

In questo articolo viene descritto come utilizzare il Istruzione DBCC SHRINKFILE per compattare il file di registro delle transazioni manualmente sotto il modello di recupero completo in un database di SQL Server 2005. Il metodo da utilizzare per 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 il file di registro delle transazioni in SQL Server 2000, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
272318Compattazione del log delle transazioni in SQL Server 2000 con DBCC SHRINKFILE

Informazioni

In SQL Server 2005, un'operazione di compattazione (DBCC SHRINKFILE) tenta di compattare il file di registro specificato immediatamente le dimensioni richieste. Per compattare il file di registro delle transazioni manualmente nel modello di recupero completo, eseguire il file di registro delle transazioni. Quindi, utilizzare il Istruzione DBCC SHRINKFILE per compattare il file di registro delle transazioni.

In genere, la compattazione del file di registro delle transazioni in SQL Server 2005 è più veloce di compattazione del file di registro delle transazioni in SQL Server 2000. Il motivo è che il SQL Gestore del Registro Server 2005 crea o Riutilizza file di log virtuali inattivi da seguendo l'ordine di archiviazione del disco fisico. Pertanto, la parte inattiva della transazione file di registro è in genere alla fine del file.

Ad esempio, il file di registro potrebbe essere 100 file di log virtuali e vengono utilizzati solo due file di log virtuali. SQL Server 2000 possono memorizzare il file di registro virtuali utilizzati primo nel avviare il file di registro delle transazioni e il secondo file di log virtuali utilizzati all'interno del file registro delle transazioni. Per compattare il file di registro delle transazioni a solo due file di log virtuali, SQL Server riempie la parte rimanente del secondo file registro virtuali utilizzando log fittizie voci. SQL Server sposta l'inizio del log logico per il successivo disponibili file di log virtuale specificato dal gestore del registro. Il gestore del registro può creare un file di log virtuali all'interno del file di registro delle transazioni immediatamente prima del ultimo virtual file log 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 caso peggiore di questo esempio, potrebbe essere necessario utilizzare 50 operazioni di backup del log e compattazione 50 operazioni di compattazione correttamente il file di registro delle transazioni a due file log virtuali.

Tuttavia, in SQL Server 2005, è possibile eseguire un'istruzione DBCC SHRINKFILE per compattare il file di registro delle transazioni immediatamente a 2 file di log virtuali. Per farlo perché il gestore del Registro di SQL Server 2005 crea 2 file di log virtuali seguendo l'ordine di archiviazione del 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 disponibile in SQL Server 2005, potrebbe essere necessario eseguire un'operazione di backup di registro aggiuntive. L'operazione di backup del Registro di aggiuntivo 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 disponibile in SQL Server 2005, attenersi alla seguente procedura:
  1. Eseguire il backup dei file di registro delle transazioni per rendere inattiva la maggior parte dei file di log virtuale attivo. Pertanto, è possibile rimuovere file di log virtuali inattivi in un passaggio successivo. Per effettuare questa operazione, avviare SQL Server Management Studio e quindi eseguire un'istruzione Transact-SQL analogo la seguente istruzione Transact-SQL.
    BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'
    Nota In questa istruzione <DatabaseName></DatabaseName>è un segnaposto per il nome del database di backup, e <BackupFile></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 analogo la seguente istruzione Transact-SQL.
    DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS
    Nota In questa istruzione <FileName></FileName>è un segnaposto per il nome del file di registro delle transazioni, e <TargetSize></TargetSize> è un segnaposto per le dimensioni di destinazione che si desidera che il file di registro delle transazioni sia. La dimensione di destinazione deve essere ragionevole. Ad esempio, è 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 delle transazioni per il dimensione di destinazione, eseguire l'istruzione BACKUP LOG menzionato nel passaggio 1 per rendere più i file di log virtuali inattivi.
  4. Eseguire l'istruzione DBCC SHRINKFILE citato 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, compattazione dei file di registro delle transazioni in SQL Server 2005 può differire dalla compattazione dei file di registro delle transazioni in SQL Server 2000.
  • Se un file di registro ha grandi quantità di spazio libero, compattazione dei file di registro delle transazioni in SQL Server 2005 è più veloce rispetto a compattare il file di registro delle transazioni in SQL Server 2000.
  • Se un file di registro dispone di spazio libero, compattazione dei file di registro delle transazioni in SQL Server 2005 è identico a compattare il file di registro delle transazioni in SQL Server 2000.
  • Se un file di registro ha poco spazio libero, potrebbe essere necessario eseguire un backup di registro aggiuntive operazione in SQL Server 2005 rispetto a è necessario eseguire in SQL Server 2000.

Riferimenti

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

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

Per ulteriori informazioni sul troncamento del log delle transazioni, visitare il Troncamento del Log delle transazioni Sito Web MSDN.

Proprietà

Identificativo articolo: 907511 - Ultima modifica: venerdì 20 luglio 2012 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Chiavi: 
kbsqlsetup kbsql2005engine kbinfo kbmt KB907511 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 907511
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti