2009-08-09 13 views
8

Ho visto che il nostro database ha il modello di recupero completo e ha un log delle transazioni da 3 GB.Hows fa un grande log delle transazioni influenzare le prestazioni?

Man mano che il registro aumenta, in che modo influisce sulle prestazioni del database e sulle prestazioni delle applicazioni che accedono al database?

JD

+0

Questo è un titolo fuorviante. Sono sicuro che è solo un errore di battitura, ma "grande transazione" e "grande registro delle transazioni" sono cose molto diverse, come sono sicuro che tu sappia! –

risposta

7

La procedura consigliata è quella di assegnare un file di registro delle transazioni SQL Server al proprio disco o LUN.

Ciò consente di evitare la frammentazione del file di registro delle transazioni sul disco, come già menzionato da altri poster, e di evitare/ridurre al minimo il conflitto del disco.

Lo scenario ideale prevede che il DBA allochi spazio sufficiente per l'ambiente di database in anticipo, ad esempio allocare x GB di dati in una volta sola. Su un disco dedicato questo creerà un'allocazione contigua, evitando così la frammentazione.

Se è necessario aumentare il registro delle transazioni, è consigliabile tentare di farlo in porzioni considerevoli al fine di tentare di allocare in modo contiguo.

Si dovrebbe anche cercare di NON restringere il file di registro delle transazioni come, il restringimento ripetuto e la crescita automatica possono portare alla frammentazione del file di dati sul disco.

Trovo che sia meglio pensare alla proprietà del database di autogrowth come a un fail safe, ovvero il DBA dovrebbe monitorare in modo proattivo lo spazio del log delle transazioni (magari impostando gli avvisi) in modo che possano aumentare le dimensioni del file di registro delle transazioni di conseguenza l'utilizzo del database requisiti, ma la proprietà autogrowth può essere utilizzata per garantire che il database possa continuare a funzionare normalmente in caso di crescita imprevista.

Un file di registro delle transazioni di grandi dimensioni in sé, se non dannoso per le prestazioni, in quanto il server SQL scrive in modo sequenziale nel registro, pertanto, a condizione che si gestisca in modo appropriato la dimensione complessiva del registro e l'allocazione di spazio aggiuntivo.

0

Se il registro viene frammentato o ha bisogno di crescere sarà rallentare l'applicazione.

0

Se non si cancella il registro delle transazioni periodicamente eseguendo i backup, il registro si riempirà e consumerà l'intero spazio disponibile sul disco.

1

In un paio di modi.

Se il sistema è configurato per la crescita automatica del log delle transazioni, man mano che il file si ingrandisce, il server SQL dovrà svolgere più lavoro e potenzialmente rallentare. Quando finalmente esaurisci lo spazio, sei sfortunato e il tuo database smetterà di prendere nuove transazioni.

È necessario ottenere con il DBA (o forse si è il DBA?) E eseguire backup periodici frequenti e periodici. Salvali dal tuo server su un altro sistema di backup dedicato. Mentre si esegue il backup del log, lo spazio nel file di registro esistente verrà recuperato, impedendo che il registro diventi molto più grande. Il backup del log delle transazioni consente inoltre di ripristinare il database in un momento specifico dopo l'ultimo backup completo o differenziale, che riduce significativamente le perdite di dati in caso di errore del server.

Problemi correlati