Bases de datos un 50% más rápidas DB2: TEMPORAL TABLES

Home / Blog / Bases de datos un 50% más rápidas DB2: TEMPORAL TABLES

En las bases de datos DB2 el uso eficiente de las Temporal Tables permite múltiples beneficios en su velocidad y coste:

  • Aumento drástico de la velocidad en la gestión de datos históricos

  • El volumen de las Bases de Datos no para de crecer, disminuir ese volumen reducirá el coste de licencias y mantenimiento

  • El crecimiento constante de los datos almacenados en BBDD reduce la velocidad de acceso a los datos

  • Un diseño adecuado de su base de datos utilizando las tablas temporales DB2 mejorará el rendimiento global del sistema.

 

las Bases de datos son una de las tareas más complejas en cualquier sistema de negocio, y que a menudo se obvia puesto que no presenta problemas hasta pasado un tiempo, es la gestión de datos históricos.

Por norma general se han de almacenar datos que, a medida que pasa el tiempo van cayendo en desuso, pero que deben estar almacenados. Las bases de datos van creciendo y es cuando comienzan los problemas de rendimiento; lo que conlleva un aumento de consumo de recursos y en consecuencia un coste. Esto hace que con el tiempo se deban implementar soluciones de depuración y recuperación de datos, que a su vez también tendrán un coste de diseño, implantación y como no, consumo en sus ejecuciones.

 

DB2 for z/OS a partir de su versión 10 incluye una solución a tener en cuenta para atacar este problema de raíz con un buen diseño y no tener que preocuparnos a futuro de la gestión de datos históricos.

 

 

Presentamos en este artículo las tablas temporales (o de archivo) las cuales, de forma trasparente, realizan la gestión de datos en función de tramos temporales a partir de unas columnas tipo DATE que permiten guardar y extraer la información en función de periodos.

 

Existen tres tipos de tablas temporales:

De periodo aplicación.

De periodo sistema.

Tabla BI-TEMPORAL.

 

De periodo aplicación.

También denominado período BUSINESS_TIME. El período de la solicitud consiste en un par de columnas con valores mantenidos por la aplicación que indican el período de tiempo en que los datos comerciales en una fila son válidos.

Una tabla sólo puede tener un período BUSINESS_TIME. El período de aplicación se utiliza para ayudar a una aplicación a administrar datos temporales en su lógica de negocio.

Para definir una tabla con un período de aplicación, se debe incluir PERIOD BUSINESS_TIME (begin_column, end_column) en la definición de la tabla. begin_column y end_column deben identificar las columnas que existen en la tabla. La primera de las fechas anteriores identifica cuando la empresa considera que la fila es válida, y la última señala cuando la empresa considera que la validez de la fila finaliza.

Se recomienda definir el campo como TIMESTAMP (6) NOT NULL o DATE NOT NULL. Cuando se define un período BUSINESS_TIME para una tabla, DB2 genera una restricción de verificación en la que el valor de la columna final debe ser mayor que el valor de la columna de inicio.

 

De periodo sistema.

También denominado período SYSTEM_TIME. El período del sistema consiste en un par de columnas con valores mantenidos por el sistema que indican el período de tiempo en que una fila es válida.

Una tabla puede tener solo un período SYSTEM_TIME. El período del sistema se usa para auditar los cambios en los datos por parte de DB2.

Para definir una tabla con un período de sistema, debe incluir PERIOD SYSTEM_TIME (begin_column, end_column) en la definición de la tabla. Los campos deben identificar columnas que existen en la tabla. <<begin_column>> registra el momento en que comienza una nueva transacción para los datos, que es cuando se insertó una nueva fila en la tabla o cuando se actualiza la fila existente. <<end_column>> registra el momento en que finaliza una transacción, que es cuando la fila existente se modifica o elimina de la tabla.

begin_column se debe definir como TIMERAMP (12) NOT NULL GENERATED ALWAYS AS ROW BEGIN, y end_column debe definirse como TIMESTAMP (12) NOT NULL GENERATED ALWAYS AS ROW END.

 

Tabla BI-TEMPORAL.

Esta es un híbrido con las características de las dos anteriores. La tabla bitemporal tiene las ventajas tanto de la tabla temporal del período de aplicación como de la tabla temporal del período del sistema. Si una aplicación necesita administrar datos temporales comerciales, así como también cambios de datos de auditoría, se recomienda la tabla bitemporal.

 

Mejoras de DB2 11 for z / OS para tablas temporales

A partir de la versión 11 de DB2 for z/OS, se incluyen algunas mejoras para las tablas temporales como:

  • Soporte temporal de consulta, actualización y eliminación de para vistas
  • Consulta temporal, actualización y eliminación con registros especiales, que comentaremos a continuación.

 

Consulta de una tabla temporal de aplicación utilizando los registros especiales.

  • Establecer la opción de vinculación BUSTIMESENSITIVE en YES.
  • Establecer el registro especial CURRENT TEMPORAL BUSINESS_TIME en el punto de tiempo que desea consultar.
  • Especificar FOR BUSINESS_TIME AS OF CURRENT TEMPORAL BUSINESS_TIME como especificación del período.

 

Consulta de una tabla temporal de sistema utilizando los registros especiales.

  • Establecer la opción de enlace SYSTIMESENSITIVE en YES.
  • Establecer el registro especial CURRENT TEMPORAL SYSTEM_TIME en el punto de tiempo que desee.
  • Especificar FOR SYSTEM_TIME AS OF ACTUAL TEMPORAL SYSTEM_TIME como la especificación de los períodos.

 

En conclusión, utilizando tablas temporales DB2 de forma adecuada en el diseño de sus sistemas de negocio, puede lograr un ahorro de más de 50% en un futuro dependiendo del volumen de datos que vaya a tratar. Es importante hacer un buen análisis en la fase de diseño e invertir horas para encontrar la mejor solución para sus necesidades, puede evitarle problemas de rendimiento, lo que significa un aumento del coste de su sistema.

 

Autor: Alejandro Hernández , Performance Analyst

Dele un vistazo a nuestro programa intensivo de optimización de Bases de Datos, reduzca el tiempo de acceso mejorando la UX de los procesos y transacciones:

OPTIMICE SU BASE DE DATOS

 

 

Related Posts

Leave a Comment

Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.

Orizon