Bei der Installation des SQL-Servers wird der Füllfaktor für Indizes default auf 100 % gesetzt.
Dies hat zur Folge, dass bei einem Insert die Indizes direkt fragmentiert werden. Um diesen Umstand zu umgehen kann man den Füllfaktor manuell festlegen.
EXEC sys.sp_configure N'fill factor (%)', N'70' GO RECONFIGURE WITH OVERRIDE GO
In diesem Beispiel wurde der Füllfaktor auf 70% gesetzt.
Welchen Füllfaktor einstellen?
Diese Frage stellen sich viele Datenbankdesigner und -administratoren. Eine pauschale Aussage, die auf alle Zutrifft kann man hier nicht geben.
Der Füllfaktor hängt von vielen Parametern ab:
- Wie viele Daten werden im laufenden Betrieb eingefügt, geändert oder gelöscht?
- Handelt es sich vielleicht um eine Archiv-Datenbank?
Die Liste kann man bis ins unendliche weiterführen.
Ich habe die Erfahrung gemacht, dass bei einer produktiven Datenbank ein Füllgrad zwischen 70 % und 90 % passend ist. Je mehr Daten gespeichert, geändert oder gelöscht werden umso näher gehe ich an die 70 % Marke.
Bei einer Archiv-Datenbank oder einer Reporting-Datenbank, in die z.B. nur einmal in der Nacht Daten importiert werden lasse ich die Default-Einstellung auf 100 %.
Jeder Datenbankadministrator / -entwickler muss hier seine Applikation auf die Probe stellen und durch zahlreiche Test den optimalen Wert für den Füllgrad der Indizes ermitteln.