Espacios de tablas segmentados (no UTS) (en desuso)

Un espacio de tablas segmentado resulta útil para almacenar más de una tabla, en especial tablas relativamente pequeñas. Las páginas contienen segmentos y cada segmento contiene registros de sólo una tabla.

Recomendación: Espacios de tablas segmentados (no UTS) en desuso. Están soportados en Db2 12, pero es posible que se eliminen en el futuro. En su lugar, utilice los espacios de tablas universales.

Los espacios de tablas segmentados contienen un máximo de 64 GB de datos y pueden contener uno o más conjuntos de datos VSAM. Un espacio de tablas pueden ser más grande si se cumple alguna de las condiciones siguientes:

  • El espacio de tablas es un espacio de tablas particionado que se crea con la opción DSSIZE.
  • El espacio de tablas es un espacio de tablas LOB.

Las páginas de un espacio de tablas pueden tener un tamaño de 4 KB, 8 KB, 16 KB o 32 KB. Las páginas contienen segmentos y cada segmento contiene registros de sólo una tabla. Cada segmento contiene el mismo número de páginas y cada tabla utiliza únicamente los segmentos necesarios.

Cuando se ejecuta una sentencia que busca todas las filas para una tabla, Db2 no necesita explorar todo el espacio de tablas. En lugar de ello, Db2 puede explorar únicamente los segmentos del espacio de tablas que contienen dicha tabla. La siguiente figura muestra una posible organización de los segmentos en un espacio de tablas segmentado.

Figura 1. Posible organización de segmentos en un espacio de tablas segmentado
Inicio de la descripción de la figura. El Segmento 1 contiene la Tabla A, el Segmento 2 contiene la Tabla B, el Segmento 3 contiene la Tabla C, el Segmento 4 contiene la Tabla A, el Segmento 5 contiene la Tabla B, etc. Fin de la descripción de la figura.

Cuando se utiliza una sentencia INSERT, una sentencia MERGE o el programa de utilidad LOAD para insertar registros en una tabla, los registros de la misma tabla se almacenan en segmentos diferentes. Puede reorganizar el espacio de tablas para mover segmentos juntos a la misma tabla.

Definición de un espacio de tabla segmentado (no UTS)

Un espacio de tabla (no UTS) segmentado consta de segmentos que almacena los registros de una tabla.

Para definir un espacio de tablas segmentado (no UTS), utilice la sentencia CREATE TABLESPACE con la cláusula SEGSIZE. Si utiliza esta cláusula, el valor que especifica representa el número de páginas de cada segmento. El valor debe ser un múltiplo de 4 (entre 4 y 64). La selección del valor depende del tamaño de las tablas que se almacenan. La tabla siguiente resume las recomendaciones para SEGSIZE.

Tabla 1. Recomendaciones para SEGSIZE
Número de páginas Recomendación para SEGSIZE
≤ 28 entre 4 y 28
> 28 < 128 páginas 32
≥ 128 páginas 64

Otra cláusula de la sentencia CREATE TABLESPACE es LOCKSIZE TABLE. Esta cláusula sólo es válida para tablas que están en espacios de tablas segmentados. Por lo tanto, Db2 puede adquirir bloqueos que bloqueen una única tabla, en lugar de todo el espacio de tablas.

Si desea dejar páginas de espacio libre en un espacio de tablas segmentado (no UTS), debe tener como mínimo una página libre en cada segmento. Especifique la cláusula FREEPAGE con un valor inferior al valor de SEGSIZE.

Ejemplo: Si utiliza FREEPAGE 30 con SEGSIZE 20, Db2 interpreta el valor de FREEPAGE como 19 y se obtiene una página libre en cada segmento.
Restricción: Si crea un espacio de tablas segmentado (no UTS) para que lo utilicen tablas temporales declaradas, no puede especificar ni la cláusula FREEPAGE ni la cláusula LOCKSIZE.

Características de espacios de tabla segmentados (no UTS)

Los espacios de tabla segmentados comparten las características siguientes:

  • Cuando Db2 explora todas las filas para una tabla, sólo es necesario explorar los segmentos asignados a dicha tabla. Db2 no necesita explorar todo el espacio de tablas. No es necesario captar las páginas de segmentos vacíos.
  • Cuando Db2 bloquea una tabla, el bloqueo no interfiere en el acceso a segmentos de otras tablas.
  • Cuando Db2 descarta una tabla, sus segmentos pasan a estar disponibles para reutilizarse inmediatamente después de confirmarse el descarte sin esperar la intervención de un trabajo del programa de utilidad REORG.
  • Cuando se suprimen todas las filas de una tabla, todos los segmentos excepto del primer segmento pasan a estar disponibles para reutilizarse inmediatamente después de confirmarse la supresión. No es necesaria la intervención de un trabajo del programa de utilidad REORG.
  • Una supresión masiva, que consiste en la supresión de todas las filas de una tabla, funciona mucho más rápido y produce mucha menos información de registro.
  • Si el espacio de tablas sólo contiene una tabla, su segmentación significa que el programa de utilidad COPY no copia las páginas que están vacías. Las páginas pueden estar vacías como resultado de una tabla descartada o de una supresión masiva.
  • Algunos programas de utilidad de Db2 como, por ejemplo, LOAD con la opción REPLACE, RECOVER y COPY, funcionan únicamente en un espacio de tablas o en una partición, no en segmentos individuales. Por lo tanto, para un espacio de tablas segmentado debe ejecutarse estos programas de utilidad en todo el espacio de tablas. Para un espacio de tablas más grande, puede observar problemas de disponibilidad.
  • El mantenimiento de la correlación de espacios crea una sobrecarga adicional.

La creación de menos espacios de tablas almacenando varias tablas en un espacio de tablas puede ayudarle a evitar que se alcance el número máximo de conjuntos de datos abiertos simultáneamente. Cada espacio de tablas necesita como mínimo un conjunto de datos. Durante la instalación se determina un número máximo de conjuntos de datos abiertos simultáneamente. La utilización de menos espacios de tablas reduce el tiempo dedicado a asignar y desasignar conjunto de datos.