ARTICULO: Monitorizando la fragmentación en disco: Sysextents.

ARTICULO: Monitorizando la fragmentación en disco: Sysextents.

22 mayo, 2012 ARTÍCULOS 0

IBM Informix ofrece, a través de la SMI, una potente herramienta para monitorizar el gestor. Como ya vimos en un artículo anterior, la SMI es una serie de tablas que mantienen información sobre el gestor, permitiendo su acceso por medio de sentencias SQL.

En este artículo nos centraremos en conocer un poco más los extents y la forma de obtener información sobre ellos.

Lo primero que hay que saber es ¿qué es un extent?. Para entenderlo hay que comprender la forma en la cual Informix coge espacio cuando una tabla crece. Ese nuevo espacio que coge se llama extent, y tiene un tamaño determinado y definido al crear la tabla. Lo que asegura el gestor es que todo el espacio contenido en un extent es contiguo dentro de un chunk. Pero este tamaño definido al crear la tabla puede variar. Esto puede suceder de varias formas. Se puede realizar de forma manual al ejecutar una sentencia ALTER TABLE, pero también este tamaño puede crecer de forma automática si la tabla coge muchas veces espacio. Además, si al crecer la tabla, un extent se asigna de forma contigua a otro ya existente, ambos se fusionan en un extent más grande.

Es deseable que los datos estén almacenados de forma continua, ya que las lecturas y escrituras de datos son más rápidas. Sin embargo, con el uso normal de la tabla, los datos se pueden ir fragmentando y entonces podría bajar el rendimiento al acceder al disco.

Toda esta información se almacena en la tabla sysextents y gracias a ésta se puede saber si existe una tabla con demasiados trozos o extents. Para ello podemos hacer una consulta como la siguiente:

select dbsname,tabname,count(tabname) from sysextents where dbsname not like ‘sys%’ group by dbsname,tabname order by count(tabname)

Que nos ordena todas las tablas, excluidas las de sistema, por el número de extents que tienen. Si alguna tabla tuviera demasiados extents sería interesante reordenar los datos. Para ello se puede utilizar las opciones de shrink y defrag que incluye Informix en sus versiones ultimate, o bien utilizar el sistema clásico de descargar todos los datos y volverlos a cargar, o bien modificar un indice para que sea clúster. Esto último lo que hace es copiar la tabla de forma interna ordenada por el indice y eliminar la estructura anterior cuando finaliza el proceso con lo que los datos también se compactan.

Deja una respuesta

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