Der Füllfaktor kommt nur zum Tragen, wenn ein Index erstellt oder neu erstellt wird. Dies ist die Menge des Verbrauchs für den Index der Blattebenenseiten, die während dieser Vorgänge gefüllt werden. ( Weitere Informationen zu den betroffenen Seitenebenen finden Sie im Hinweis unten. )
Wenn es einen DML-Befehl für Daten gibt ( INSERT
,UPDATE
und / oder DELETE
) gibt, geschieht dies mit den entsprechenden betroffenen Indizes. Mit anderen Worten, wenn Sie eine Seite haben, die zu 20% gefüllt ist, und Sie Daten in diese Seite einfügen, enthält die Seite mehr als 20% der Daten (sagen wir zum Beispiel 35%). Führen Sie eine weitere Einfügung durch, jetzt ist die Seite zu 64% gefüllt. Erstellen Sie den Index neu, und die Blattebenenseiten enthalten jetzt relativ den von Ihnen angegebenen Leerraumprozentsatz (oder implizit den Standardwert für den Server).
( Hinweis , wenn Sie nicht angeben PAD_INDEX
werden ON
, Füllfaktor nur auf Blattebene Seiten angewandt wird. Aber wenn man eingestellt PAD_INDEX = ON
, wird der Füllfaktor in für Intermediate-Level - Seiten des Index berücksichtigt werden. Der Standardwert istOFF
)
Der Grund für die Anpassung des Füllfaktors (anstelle der Standardeinstellung 100/0) besteht darin, dass Sie beim Einfügen oder Aktualisieren von Daten Seitenteile minimieren. Aber denken Sie daran, nichts ist kostenlos. Je niedriger der Füllfaktor ist, desto mehr Platz nehmen normalerweise Daten ein. Wenn Sie 80% freien Seitenplatz für Ihre Indizes behalten, belegen diese relativ viel Speicherplatz, was zu mehr Lesevorgängen führen kann.
Wenn die Daten eingefügt werden, befinden sich meines Erachtens ungefähr 20% der Daten auf den Seiten. Wenn die Daten aktualisiert werden, werden sie jedoch auf mehr als 20% des Index erweitert, bis sie gefüllt sind und ein Seitensplit generiert wird, oder?
Wenn Daten eingefügt werden, werden sie in die entsprechenden Indizes auf der entsprechenden Seite eingefügt. Dies könnte und würde höchstwahrscheinlich dazu führen, dass der Seitenverbrauch höher ist als der Füllfaktor.
Ein Seitensprung tritt auf, wenn einer vollständigen Indexseite neue Daten hinzugefügt werden. SQL Server teilt dann die Seite auf und platziert ungefähr die Hälfte der Daten von der vollständigen Seite auf einer neuen Seite. Auch hier kommt der Füllfaktor nicht ins Spiel.
Ein legitimer Grund für die Senkung des Füllfaktors wäre die Minimierung von Seitenteilen und damit die Minimierung der Fragmentierung von Indexseiten.