Quisiera saber cual es FILL FACTOR más adecuado para una Primary Key de una tabla con mucha información y constantes UPDATE, INSERT, y el FILL FACTOR para otra tabla que contendrá poca información y pocos UPDATE, INSERT. No me queda claro si el FILL FACTOR tiene que ser alto o bajo.
1 respuesta
Respuesta de denciso
1
1
denciso, Soy una persona multifacética, tanto manejo la informática,...
Checa lo siguiente extraído de la ayuda de sql server. FILLFACTOR = fillfactor Especifica un porcentaje que indica cuánto debe llenar SQL Server el nivel hoja de cada página de índices durante la creación de los mismos. Cuando se llena una página de índices, SQL Server requiere tiempo para dividir la página de índices y hacer sitio a las nuevas filas, lo que resulta bastante costoso. En el caso de las tablas con muchas actualizaciones, la elección adecuada de un valor para FILLFACTOR proporciona mejor rendimiento en las actualizaciones que un valor de FILLFACTOR inadecuado. El valor de FILLFACTOR original se almacena con el índice en sysindexes. Cuando se especifica FILLFACTOR, SQL Server redondea el número de filas que debe colocarse en cada página. Por ejemplo, emitir CREATE CLUSTERED INDEX ... FILLFACTOR = 33 crea un índice agrupado con un valor FILLFACTOR del 33 por ciento. Suponga que SQL Server calcula que 5,2 filas es el 33 por ciento del espacio de una página. SQL Server redondea esa cantidad, de forma que coloca seis filas en cada página. Nota La utilización de un valor FILLFACTOR explícito sólo se aplica cuando se crea el índice por primera vez. SQL Server no mantiene dinámicamente el porcentaje especificado de espacio libre de página. Los valores de FILLFACTOR especificados por el usuario pueden estar entre 1 y 100. Si no se especifica un valor, el valor predeterminado es 0. Cuando FILLFACTOR es 0, sólo se llenan las páginas de hoja. Para cambiar el valor predeterminado de FILLFACTOR, ejecute sp_configure. Utilice un valor FILLFACTOR de 100 sólo cuando no se produzcan instrucciones INSERT o UPDATE, por ejemplo, en el caso de las tablas de sólo lectura. Si FILLFACTOR es 100, SQL Server crea índices con páginas de hoja 100 por cien llenas. Una instrucción INSERT o UPDATE ejecutada después de la creación de un índice con un valor de FILLFACTOR del 100 por cien hace que la página se divida con cada INSERT y, posiblemente, con cada UPDATE. Los valores de FILLFACTOR más pequeños, excepto 0, hacen que SQL Server cree nuevos índices con páginas hoja que no están completamente llenas. Por ejemplo, un valor de FILLFACTOR de 10 puede ser una opción razonable al crear un índice en una tabla que se sabe que contiene una pequeña parte de los datos que posiblemente contendrá en el futuro. Valores más pequeños de FILLFACTOR hacen también que cada índice requiera más espacio de almacenamiento. La siguiente tabla ilustra cómo se llenan las páginas de un índice si se especifica FILLFACTOR. FILLFACTOR Página intermedia Página hoja 0 por cien Una entrada libre 100 por cien llena 1 a 99 por ciento Una entrada libre <= porcentaje de FILLFACTOR llena 100 por cien Una entrada libre 100 por cien llena Una entrada libre es el espacio de la página que puede acomodar otra entrada de índice. Importante La creación de un índice agrupado con un valor de FILLFACTOR afecta a la cantidad de espacio de almacenamiento que ocupan los datos, porque SQL Server vuelve a distribuir los datos cuando crea el índice agrupado.
David, Te agradezco el copy, paste. Ya leí el manual en linea del SQL Server, antes de formularte la pregunta. Mi pregunta era en base a tu experiencia que factores (70,80,90) eran más aconsejables. Supongo que debes contestar todo tipo de preguntas, la mía era simplemente una opinión basada en tu experiencia.
Si tienes exagerados movimientos de insert, delete o update no tienes que especificar un fillfactor, dejalo tal como esta. Si tus tablas están con datos fijos, puedes indicar el 100 para trabajar.