Uso del parámetro MAX_FILL_DATA_PAGES en Informix y checkpoints bloqueantes

Informix dispone de un parámetro que permite insertar más filas en páginas que tienen filas de longitud variable como una varchar. Poniendo el valor a 1 se activa esta funcionalidad mientras que a 0 se desactiva. Esto hace que el aprovechamiento de espacio sea más eficiente ya que si está activado el servidor añade la fila a la página siempre y cuando quede libre un 10% de espacio para futuras expansiones de la filas. Esto aplica desde el momento en que se activa, es decir, las páginas ya utilizadas no cambian.

Si no tenemos activado este valor entonces la inserción se hace reservando todo el espacio que pudiera necesitar la fila. Es decir, si tenemos un varchar de 50 y escribimos únicamente 1 carácter, con la opción activada metemos la fila si cabe ese carácter y sobra un 10% mientras que si está desactivada la metemos únicamente si caben los 50 caracteres que tiene de máximo.

Tenerlo activado puede llegar a ser problemático. En el bitmap de la tabla podemos saber que en una tabla parcialmente llena nos cabe un fila si no lo tenemos activado pero si está activado no lo podemos saber. Esto significa que es posible que necesitemos buscar en varias páginas hasta encontrar una en la que quepa el dato a insertar con el consiguiente coste en accesos a disco y memoria. Además, si tenemos que hacer un checkpoint hay que esperar a que este proceso termine para poder realizarlo, por lo que bloqueamos al resto de sesiones mientras termina y se realiza el checkpoint.

Por otra parte, si una fila crece más de lo que tenemos disponible, entonces la fila debe crecer en otra página, aumentando la fragmentación de las filas grances obligadas a buscar en varias páginas para encontrar el registro entero.

Proyectos y soluciones
Proyectos y soluciones
Artículos: 97