SQL Database Engine : Database Autogrowth

Lorsque je me connecte sur le serveur SQL de mes clients, je réalise souvent que l’option Autogrowth de la base de données AX est configurée avec le paramètre par défaut. À quoi sert l’option Autogrowth ? Lorsque le fichier de base de données atteint sa pleine capacité, SQL doit ajouter de l’espace libre au fichier. La quantité d’espace libre ajouté est égale à la valeur de l’option Autogrowth de la base de données, le hic c’est que la valeur par défaut est 1 Mb. Donc, une transaction qui prend 100 Mb dans la base de données, le serveur SQL devra effectuer 100 fois une opération qui consiste à ajouter 1 Mb d’espace libre. Les performances du serveur en sont grandement affectées et je le prouve ici.

Pour faire mon test, je vais utiliser SQL Server Import and Export Wizard afin de transférer 1 Gb de données d'une base de données de tests vers une base de données vierge. Je vais surveiller le transfert de données avec une trace de SQL Profiler configurer avec l’évènement Data File Auto Grow.



Test #1 - Résultats

Configuration de la BD vierge
Recovery Model : Simple
Initial Data Size : 3MB
Initial Log Size : 1MB
Data File Autogrowth : 1MB
Log File Autogrowth : 10%

Résultats
Data File Auto Grow events: 1033
Temps de transfert: 1min49




Test #2 - Résultats

Configuration de la BD vierge
Recovery Model : Simple
Initial Data Size: 3MB
Initial Log Size: 1MB
Data File Autogrowth: 512MB
Log File Autogrowth: 512MB

Résultats
Data File Auto Grow events: 3
Temps de transfert : 1min20


Conclusion
Pour exactement la même transaction, j’ai gagné 29 secondes. Donc, la performance a été améliorée de 26% !

Pour modifier la configuration du paramètre Autogrowth, il suffit d'aller dans les propriétés de la base de données, cliquer sur Files et modifier le paramètre Autogrowth pour le fichier de Data et de Log


Previous
« Prev Post