Blog > Octobre 2014
Instant File Initialization avec SQL Server


Lorsque l'on crée une base de données, la bonne pratique est de pré-allouer l'espace nécessaire et ne pas compter sur la croissance automatique pour agrandir votre base de données. Ceci afin de réduire au minimum les opérations coûteuses sur le système de fichier lors des traitements SQL et de réduire la fragmentation.Néanmoins, allouer un fichier de taille très importante dès le départ peut être très long. Ce qui peut poser problème lors d'une migration ou d'une récupération suite à une panne.

Pour contourner ce problème, il existe l'option d'initialisation instantanée des fichiers ("Instant File Initialization") qui permet de créer à peu près n'importe quel fichier de données instantanément. Comment cela fonctionne : par défaut SQL Server alloue un fichier et passe à zéro les bits sous-jacents sur le système de fichiers. C'est cette mise à zéro qui n'est pas réalisé lorsque cette option est activée.

Les opérations d'SQL Server qui sont affectées par cette option :
  • Création d'une base de données
  • Ajout d'un fichier de données à une base de données existante
  • Croissance d'un fichier de données (automatique ou manuel)
  • Restauration d'une base de données
  • Sauvegarde d'une base de données
Comment activer cette option :
  1. Dans les outils d'administration du serveur, ouvrir la "Stratégie de sécurité locale".
  2. Aller dans "Stratégies locales" puis "Attribution des droits utilisateurs".
  3. Dans la fenêtre de gauche, ouvrir les propriétés de "Effectuer les tâches de maintenance de volume" (voir la capture d'écran ci-dessous).
  4. Dans l'onglet "Paramètre de sécurité locale", ajouter le compte de service associé au moteur SQL Server.
  5. Relancer le service SQL Server à l'aide de SQL Server Configuration Manager.