Alcune operazioni di database hanno una durata molto lunga per completare o che si verifichino errori quando il log delle transazioni ha numerosi file di log virtuali

Traduzione articoli Traduzione articoli
Identificativo articolo: 2028436 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sintomi

╚ possibile riscontrare i seguenti problemi:
  1. Uno o pi¨ database richiederanno molto tempo per completare il ripristino durante l'avvio di SQL Server
  2. Quando si esegue il ripristino di un database, richiede molto tempo per completare
  3. Se si tenta di collegare un database richiede molto tempo per completare l'operazione
  4. Quando si tenta di Ŕ di mirroring del database di programma di installazione i messaggi di errore verificarsi 1413, 1443 e 1479 che indica un timeout.
  5. Che si verifichino memoria errori come 701 relativi quando si tenta di ripristinare un database

Quando si esamina il log degli errori di SQL Server, Ŕ possibile notare che una quantitÓ significativa di tempo trascorso prima della fase di analisi del processo di ripristino di database.
2010-05-08 14:42:38.65 spid22s avvio del database 'lot_of_vlfs'.
2010-05-08 14:46:04.76 spid22s l'analisi del database 'lot_of_vlfs' (16) Ŕ 0% completato (restano circa 0 secondi). Fase 1 di 3. Si tratta di un messaggio informativo. ╚ necessaria alcuna azione.

Cause

Durante le fasi iniziali di un processo di ripristino di database, SQL Server proforms un rilevamento di tutti i file di Log virtuali presenti in tutti i file di Log delle transazioni. Viene creato un elenco di tutti i file di Log virtuali. Questo processo pu˛ richiedere tempi molto lunghi a seconda del numero di file di Log virtuali presenti nel database specifico. Un database finisce con un numero elevato di file di Log virtuali se rileva il Log delle transazioni frequenti aumento automatico delle dimensioni con la crescita in corso per incrementi di dimensioni molto piccole.

Normalmente si avvia problemi menzionati nella sezione "Sintomi" quando il numero di file di Log virtuali Ŕ compreso nell'intervallo di parecchie centinaia di migliaia.

Risoluzione

Per trovare il numero di file di Log virtuali in un particolare Database, Ŕ possibile utilizzare i metodi dal blog del seguente:
Come una struttura di file di registro pu˛ condizionare il tempo di ripristino di database
Potrebbe essere necessario mantenere il numero totale di file di Log virtuali in un numero ragionevole come 10.000.

╚ possibile riconfigurare il file di registro delle transazioni per contenere solo un numero limitato di file di Log virtuali utilizzando i metodi seguenti:
  1. Compattare i file di registro delle transazioni, aumentare i file per le dimensioni necessarie manualmente utilizzando l'istruzione ALTER DATABASE TSQL <database name="">MODIFY FILE (nome = 'nome file logico di transazione ', dimensione registro = <required size="">)</required> </database>
  2. Rigenerare il file di registro delle transazioni e quindi aumentare manualmente i file di registro delle transazioni alle dimensioni necessarie
    1. Se il database Ŕ stato in precedenza arrestato pulire [con nessun utente o le transazioni aperte], si possono sfruttare il ATTACH_REBUILD_LOG per l'opzione di CREATE DATABASE per creare un nuovo file di registro delle transazioni.
    2. Se un database in lettura/scrittura Ŕ un singolo file non Ŕ disponibile l'accesso e se il database Ŕ stato chiuso pulizia [con nessun utente o le transazioni aperte] prima l'operazione di collegamento, opzione FOR ATTACH di CREATE DATABASE automaticamente ricompila il file di log e aggiorna il file primario.

Dopo aver riconfigurato il layout del file di registro delle transazioni, esaminare e apportare le modifiche necessarie per l'aumento automatico delle impostazioni per il file di registro delle transazioni per evitare che si verifichi lo stesso problema in futuro.

Nota. Prima di eseguire queste operazioni, assicurarsi di avere una copia di backup ripristinabile nel caso in cui si verificano alcuni problemi in un secondo momento.

2524743 Correzione: Il recupero richiede pi¨ tempo del previsto per un database in un 2008 di SQL Server o in un ambiente di SQL Server 2008 R2

2455009 FIX: Rallentamento delle prestazioni quando si ripristina un database, se sono presenti molti VLF all'interno del log delle transazioni in SQL Server 2005, in SQL Server 2008 o SQL Server 2008 R2

2653893 FIX: Esso richiede molto tempo per ripristinare un database in SQL Server 2008 R2

979042 Correzione: Il database principale non viene ripristinato se il database contiene un numero elevato di file di log virtuali in SQL Server 2005 o SQL Server 2008

Informazioni

Per informazioni dettagliate sui file di Log virtuali, vedere l'argomento della documentazione in linea: Architettura fisica del Log delle transazioni
Discussioni su questo problema:
Come una struttura di file di registro pu˛ condizionare il tempo di ripristino di database
Transazione registro VLF - troppi o troppo pochi?
1413 errore all'avvio di mirroring del Database: il numero di file di log virtuali Ŕ un numero troppo elevato?

Inoltre, prendere nota di un problema noto con sempre pi¨ registri delle transazioni:

2633151 Il file di registro delle transazioni di database di SQL Server cresca dal valore di crescita dei file configurati


Per ulteriori informazioni su prodotti o strumenti automaticamente verificare questa condizione sull'istanza di SQL Server e sulle versioni del prodotto SQL Server, vedere la tabella riportata di seguito:

Riduci questa tabellaEspandi questa tabella
Software di regolaTitolo regolaDescrizione della regolaVersioni del prodotto rispetto al quale viene valutata la regola
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)




Database con un numero elevato di VLF presente





Di SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) viene fornita una regola per individuare le situazioni in cui i database contengono un numero elevato di file di Log virtuali. Il BPA di SQL Server 2008 R2 supporta SQL Server 2008 e SQL Server 2008 R2.

Se si esegue lo strumento BPA e si verifica un errore con il titolo del motore di Database - database con un numero elevato di VLF presente, Ŕ necessario verificare il numero di file di Log virtuali per il database interessato e riconfigurare i file di registro delle transazioni.
SQL Server 2008
SQL Server 2008 R2






SQL Server 2012 Best Practice Analyzer (BPA di SQL Server 2012)



Database con un numero elevato di VLF presente




SQL Server 2012 Best Practice Analyzer (BPA di SQL Server 2012) viene fornita una regola per individuare le situazioni in cui i database contengono un numero elevato di file di Log virtuali.

Se si esegue lo strumento BPA e si verifica un errore con il titolo del motore di Database - database con un numero elevato di VLF presente, Ŕ necessario verificare il numero di file di Log virtuali per il database interessato e riconfigurare i file di registro delle transazioni.
SQL Server 2012








ProprietÓ

Identificativo articolo: 2028436 - Ultima modifica: mercoledý 7 maggio 2014 - Revisione: 4.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
Chiavi:á
kbmt KB2028436 KbMtit
Traduzione automatica articoli
IMPORTANTE: il presente articolo Ŕ stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l?obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre Ŕ perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilitÓ per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualitÓ della traduzione.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 2028436
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

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com