Actualización Automática de Estadísticas (IBM-Informix)

Escrito por Joan Lluis Roca

El servidor de base de datos actualiza las estadísticas de forma automática según el planificador y un conjunto de políticas de vencimiento. El sistema  de actualización automática de estadísticas (AUS) identifica las tablas e índices que requieren nuevas estadísticas y ejecuta la sentencia UPDATE STATISTICS adecuada para optimizar el rendimiento de las consultas, este sistema AUS  se apoya en bases de datos transaccionales y el hecho de que las estadísticas estén permanentemente actualizadas y disponibles para el optimizador, garantiza que el rendimiento no se degradará debido a planes de acceso ineficientes.

A veces será necesario ajustar las políticas de vencimiento y/o el planificador para que se adapten a las necesidades del sistema. El sistema AUS se encuentra en la base de datos sysadmin, aunque también puede utilizarse OAT (Open Admin Tool).

Funcionamiento del AUS

AUS utiliza una serie de sensores, tareas, umbrales y tablas para evaluar y actualizar las estadísiticas.

Secuencia de eventos que definen como se actualizan las estadísiticas:

  1. El sensor del Scheduler mon_table_profile lee cada día la table systables de sysmaster.
  2. El sensor actualiza la tabla mon_table_profile de sysadmin con información de los cambios realizados sobre las tablas.
  3. La tarea Auto Update Statistics Evaluation guarda información diaria de la tabla mon_table_profile, systables, sysdistrib, syscolumns y sysindices de sysmaster.
  4. Auto Update Statistics Evaluation determina qué tablas necesitan actualización de estadísticas en función del vencimiento de las políticas.
  5. La tarea Auto Update Statistics Evaluation genera instrucciones UPDATE STATISTICS y las inserta en la tabla aus_command table de sysadmin.
  6. Auto Update Statistics Refresh ejecuta las instrucciones UPDATE STATISTICS de la table aus_command los sábados y domingos por la mañana entre la 1:00 AM y las 5:00 AM e inserta los resultados en la misma tabla. Las sentencias UPDATE STATISTICS que no se hayan completado antes de las 5:00 AM permaneces en la tabla.

Manejo de las políticas de vencimiento

Para cambiar el valor de una política de vencimiento, se debe actualizar la columna value de la tabla ph_threshold de sysadmin.

Por Ejemplo:

Si detectamos que las consultas lanzadas contra tablas pequeñas de menos de 1000 filas se ejecutan más rápido cuando se actualizan las estadísiticas más frecuentemente, se puede cambiar la política de vencimiento para asegurar que las estadísticas se actualizarán cada semana.

UPDATE ph_threshold SET value = 1000 WHERE name = «AUS_SMALL_TABLES“;

El nuevo umbral estará disponible la próxima vez  que se ejecute la tarea Auto Update Statistics Evaluator.

Visualización las sentencias generadas por AUS

Para visualizar las sentencias UPDATE STATISTICS generadas por AUS antes de ser ejecutadas se puede consultar la vista aus_cmd_list y si queremos visualizar las sentencias que se ejecutaron satisfactoriamente la vista aus_cmd_comp.

Ejemplos:

  • Para visualizar todas las sentencias planificadas:

        SELECT * FROM aus_cmd_list;

  • Para visualizar las sentencias ejecutadas satisfactoriamente en los 30 días anteriores:

        SELECT * FROM aus_cmd_comp;

  • Para visualizar las sentencias que fallaron:

SELECT aus_cmd_exe, aus_cmd_err_sql, aus_cmd_err_isam FROM aus_command WHERE aus_cmd_state = «E»;

Replanificado del sistema AUS

También se puede cambiar cuando y durante cuánto tiempo se ejecuta la tarea Auto Update Statistics Refresh. Por ejemplo si detectamos que no todas las sentencias UPDATE STATISTICS se ejecutan en el período especificado, o queremos que las estadísticas se actualicen más frecuentemente, podemos cambiar el momento de inicio, de finalización y los días de la semana para ejecutar esta tarea.

UPDATE ph_task SET tk_stop_time = «06:00:00» WHERE tk_name = «Auto Update Statistics Refresh»;

UPDATE ph_task SET tk_monday = «T», tk_tuesday = «T», tk_wednesday = «T», tk_thursday = «T», tk_friday = «T» WHERE tk_name = «Auto Update Statistics Refresh»;

Deshabilitar el sistema AUS

Si deseamos deshabilitar AUS, se deben deshabilitar las tareas  Auto Update Statistics Evaluation y Update Statistics Refresh:

UPDATE ph_task SET tk_enable = «F» WHERE tk_name = «Auto Update Statistics Evaluation»;

UPDATE ph_task SET tk_enable = «F» WHERE tk_name = «Auto Update Statistics Refresh»;

TAMBIÉN PODRIA GUSTARTE


Deja una respuesta

Los campos con asterisco (*) son necesarios.
RESPONSABLE DEL TRATAMIENTO: ALDEXTRA BUSINESS & TECHNOLOGY, S.L. (en adelante, “ALDEXTRA IM”), con NIF B62983549, domicilio social en C/ Tuset, 8 – 10, 3º 4ª, 08006, Barcelona (Barcelona, España) y contacto info@aldextra.com.
FINALIDADES: a) La gestión de consulta y requerimientos web; b) Gestión de los clientes potenciales y contactos de la empresa; c) Gestión y mantenimiento de la relación con los clientes, llevar a cabo los servicios contratados por el cliente, adecuación de las ofertas comerciales de ALDEXTRA IM a las características particulares del cliente, emitir facturas, realizar la contabilidad, etc.; d) Comercialización de productos y servicios; e) Envío de newsletters, comunicaciones comerciales e informativas de su interés, envío de boletines electrónicos con ofertas, promociones, noticias relacionadas con los productos y servicios de ALDEXTRA IM; f) Gestionar su candidatura cuando usted envíe su CV y/o participe en procesos de selección de ALDEXTRA IM; g) Gestionar su participación en los sorteos, concursos o promociones organizadas por ALDEXTRA IM, gestionar el premio y la publicación del ganador; h) Mantenimiento de listas de supresión actualizadas para evitar ser contactado si usted lo solicita; i) Permitir el funcionamiento de nuestro Sitio Web/aplicaciones a través de cookies técnicas y funcionales, realizar segmentaciones y/o elaborar perfiles con finalidad promocionales o publicitaria; j) Realización de estadísticas anónimas respecto de los hábitos de acceso y la actividad desarrollada por los usuarios; k) Cumplimiento de las obligaciones legales.
BASES DE LEGITIMACIÓN: ejecución contractual, aplicación de medidas pre-contractuales, consentimiento expreso, interés legítimo y obligación legal.
DESTINATARIOS: no se cederán datos a terceros, salvo obligación legal.
EJERCICIO DE DERECHOS: Ejercicio de los derechos de limitación del tratamiento, portabilidad de los datos, acceso, rectificación, supresión y oposición a info@aldextra.com.
INFORMACIÓN ADICIONAL: Puede consultar la información adicional y detallada sobre nuestra política de Protección de Datos en el siguiente enlace. Política de Privacidad.

¿Tienes alguna pregunta?

Contáctanos ahora