Al modificar la tabla no aumenta el tamaño ocupado

Al modificar la tabla no aumenta el tamaño ocupado

30 octubre, 2020 ARTÍCULOS 0

Tras realizar un alter table en el que añadamos un nuevo campo es posible que observemos que el espacio total ocupado por nuestra tabla no ha variado. esto puede ser debido a la forma que tiene Informix de realizar estos cambios.

Cuando añadimos un cambio Informix mantiene la tabla tal cual está y crea una nueva estructura, de forma que cuando realizamos una modificación la página que contiene el registro pasa de la estructura antigua a la nueva. Las nuevas inserciones, si van a una página con formato antiguo fuerzan la conversión de esa página. Si van a una página con formato nuevo entran ya con el nuevo formato.

De esta forma no tendremos la tabla completamente en la nueva estructura hasta que no hayamos modificado todos los registros existentes cuando se realizó el cambio.

Podemos comprobar si una tabla tiene pendientes de realizar cambios para pasar a la nueva estructura por medio de oncheck -pT.

Se puede forzar la actualización de la tabla a la nueva versión realizando una pasada por toda la tabla de una forma similar a:

UPDATE tabla SET columna1=columna1 WHERE 1=1.

Si la tabla fuera muy grande habría que trocear la sentencia para que no nos diera transacción larga ni nos generara problemas de bloqueos o carga excesiva:

UPDATE tabla SET columna1=columna1 WHERE 1=1 AND valor < 100; UPDATE tabla SET columna1=columna1 WHERE 1=1 AND valor >= 100 AND valor < 200; UPDATE tabla SET columna1=columna1 WHERE 1=1 AND valor >= 300;

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *