El factor de relleno solo entra en juego cuando se crea o reconstruye un índice. Es la cantidad de consumo para el índice de las páginas a nivel de hoja que se llenan durante estas operaciones. ( consulte la nota a continuación para obtener más aclaraciones sobre los niveles de página afectados )
Cuando hay un comando DML a los datos ( INSERT
, UPDATE
y / o DELETE
), que pasará a los índices afectados correspondientes. En otras palabras, si tiene una página que está llena en un 20% e inserta datos en esa página, la página contendrá más del 20% de los datos (digamos 35% solo por el simple hecho). Haga otra inserción, ahora la página está llena en un 64%. Reconstruya el índice, y las páginas a nivel de hoja ahora contendrán relativamente el porcentaje de espacio que especifique (o implícitamente el valor predeterminado para el servidor).
( Tenga en cuenta que , cuando no especifica PAD_INDEX
ser ON
, el factor de relleno solo se aplica a las páginas de nivel de hoja. Pero cuando configura PAD_INDEX = ON
, el factor de relleno se tendrá en cuenta para las páginas de nivel intermedio del índice. El valor predeterminado esOFF
)
La razón para ajustar el factor de relleno (en lugar de usar el valor predeterminado 100/0) es para minimizar las divisiones de página al insertar o actualizar datos. Pero tenga en cuenta que nada es gratis. Cuanto menor sea el factor de relleno, más espacio ocuparán normalmente los datos. Si mantiene un espacio de página libre del 80% para sus índices, consumirán una cantidad relativamente mayor de espacio en disco, lo que puede generar más lecturas.
Según tengo entendido, cuando se inserten los datos habrá aproximadamente el 20% de los datos en las páginas. Sin embargo, cuando se actualizan los datos, se expandirá a más del 20% del índice, hasta llenarlo y generar una división de página, ¿verdad?
Cuando se insertan datos, se insertarán en los índices apropiados en la página correspondiente. Esto podría y muy probablemente causaría que el consumo de la página sea mayor que el factor de relleno.
Se producirá una división de página cuando se agreguen nuevos datos a una página de índice completa. SQL Server dividirá la página y colocará aproximadamente la mitad de los datos de la página completa en una nueva página. Nuevamente, el factor de relleno no entra en juego aquí.
Una razón legítima para reducir el factor de relleno sería minimizar las divisiones de página y, por lo tanto, minimizar la fragmentación de la página de índice.