Instant File Initialization per DMV prüfen

Instant File Initialization sollte in Umgebungen die nicht den höchsten Sicherheitsanforderungen genügen müssen, normal angeschaltet sein. Mit Instant File Initalization muss der SQL Server neuen Speicherplatz für Dateivergrößerungs-Vorgänge oder beim Anlegen neuer Dateien nicht erst komplett mit Nullen auffüllen. Dies bringt einen deutlichen Performance-Schub, wenn Dateien angelegt oder vergrößert werden. Mit SQL Server 2016 ist es möglich, die Instant File Initialization bereits bei der Installation zu aktivieren (Option: Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine Service).

Ein späteres Aktivieren stellt auch kein Problem dar:


Unter Local Security Policy findet man in Security Settings -> Local Policies -> User Rights Assignment das Recht Perform Volume Maintenance Tasks.


Um Instant File Initialization zu aktivieren gibt es nun zwei Strategien. Die klassische Vorgehensweise wäre, den SQL Server Service Account hier unter Perform volume maintance tasks einzutragen. Das hat aber einen großen Nachteil: Immer wenn der Service Account des SQL Servers geändert wird, funktioniert danach die Instant File Initialization nicht mehr, falls die Lokale Sicherheitsrichtlinie nicht auch angepasst wird.


Deutlich angenehmer ist hier direkt die Per-Service SID einzutragen, in diesem Fall ist sie NT SERVICE\MSSQL$INSTANCE1 da die Instanz in diesem Fall INSTANCE1 heißt. Die Instant File Initialization funktioniert jetzt automatisch auch nach dem Wechsel des Service Accounts.

Zu beachten ist generell, dass ein SQL Server Neustart benötigt wird, damit die Instant File Initialization aktiviert wird.

Überprüfen der Instant File Initalization

Neu in SQL Server 2016 ist, dass sich die Instant File Initalization jetzt sehr leicht per Dynamic Management View überprüfen lässt:


Hierbei muss bei dem SQL Server Service in der Spalte instant_file_initialization_enabled ein Y stehen. Steht hier ein N ist die Instant File Initialization nicht aktiv. NULL dagegen bedeutet lediglich, dass dieser Service die Instant File Initialization nicht unterstützt.

Hat man seine Umgebung in der Verwaltung eines Central Management Servers kann man direkt auf einer Server Gruppe einfach folgende Anfrage durchführen:

So erhält man alle Instanzen in der entsprechenden Gruppe für welche die Instant File Initialization gerade nicht aktiv ist.