Un altro motivo per passare a SQL Server 2005

Sappiamo tutti che le impostazioni di default dell'autogrow dei file sono davvero troppo troppo basse per database di media dimensione. In particolare il transaction log ha come impostazione di default il 10% e la dimensione iniziale dello stesso è di 1MB.

In praticamente ogni situazione questo significa che il transcation log inizia a crescere si da subito, generando molti Virtual-Log Files (file "virtuali" con la quale è suddiviso e gestito il transaction log).

Questo è (molto) male, in particolare l'impatto sulle performance è davvero devastante su SQL Server 2000. Il bel post di Tony Rogerson è molto chiaro in merito:

  Many VLF’s Few VLF’s
Backup Transaction Log 27 seconds 22 seconds
Update with Triggers 98 seconds 28 seconds

 

mentre su SQL Server 2005 il problema non si presenta.

Come ricorda anche Tony, però, questo non significa che si possa evitare di impostare correttamente dimensione iniziale e rateo di crescita del transaction log. Infatti durante l'operazione di growth del transaction log, ogni transazione è sospesa fino al termine dell'espansione del file (ricordate ce per il transaction log l'instant file initialization non è applicabile). E' quindi bene impostare un valore iniziale sufficientemente grande da non richiedere immediati autogrow, ed un rateo di crescita sufficientemente ampio da non richierdene troppi.

Know your logs! :-)

Published giovedì 26 luglio 2007 10.16 by dmauri

Comments

No Comments