Aus Books Online (Schwerpunkt meiner):
FILLFACTOR = fillfactor Gilt für: SQL Server 2008 bis SQL Server 2016, SQL Database V12.
Gibt einen Prozentsatz an, der angibt, wie voll das Datenbankmodul die Blattebene jeder Indexseite während der Indexerstellung oder -wiederherstellung machen soll . Der Füllfaktor muss ein ganzzahliger Wert von 1 bis 100 sein. Wenn der Füllfaktor 100 ist, erstellt das Datenbankmodul Indizes mit bis zur Kapazität gefüllten Blattseiten.
Die Einstellung FILLFACTOR gilt nur, wenn der Index erstellt oder neu erstellt wird . Das Datenbankmodul behält den angegebenen Prozentsatz des leeren Speicherplatzes auf den Seiten nicht dynamisch bei. Verwenden Sie zum Anzeigen der Füllfaktoreinstellung die Katalogansicht sys.indexes.
Der Füllfaktor gilt für die Blattseiten. PAD_INDEX bestimmt, was mit Nicht-Blattseiten passiert. Von derselben BoL-Seite:
PAD_INDEX = {ON | AUS }
EIN Der vom Füllfaktor angegebene Prozentsatz des freien Speicherplatzes wird auf die Seiten der Zwischenebene des Index angewendet.
AUS oder Füllfaktor ist nicht angegeben. Die Seiten der mittleren Ebene sind nahezu voll
Das Aufteilen von Seiten kann auf allen Ebenen des BTree erfolgen, einschließlich der Stammebene. Aufgrund des Fan-Outs ist die Häufigkeit, mit der Zwischenseiten geteilt werden, (typischerweise) eine Größenordnung geringer als die, mit der Blätter geteilt werden. Es gibt auch viel weniger Nicht-Blattseiten als Blattseiten. Folglich ist PAD_INDEX weniger besorgniserregend als FILLFACTOR. Es lohnt sich immer noch darüber nachzudenken, insbesondere bei zufällig eingefügten Indizes.
Während des Schreibens werden die Seiten zu 100% gefüllt. Dann werden sie 50/50 oder so nah wie möglich aufgeteilt, um sicherzustellen, dass jede Zeile vollständig auf einer einzelnen Seite enthalten ist. Ich glaube, die Aufteilung ist immer 50/50. Nachfolgende Schreibvorgänge können jedoch verzerrt sein, sodass eine der neuen Seiten viel schneller als die andere gefüllt wird.