Asignación de espacio secundario para espacios de tablas e índices de Db2

Con conjuntos de datos gestionados por Db2, Db2 puede calcular la cantidad de espacio que se debe asignar a extensiones secundarias mediante un algoritmo de escala móvil, o bien puede especificar la cantidad secundaria al crear o modificar un espacio de tabla o un índice.

Inicio del cambioDb2 utiliza la escala móvil para determinar el número de cilindros para cada extensión hasta un cierto número de extensiones, que depende del tamaño del conjunto de datos:fin del cambio

Inicio del cambio
  • Para conjuntos de datos de 128 GB o más, las primeras 64 extensiones se asignan en tamaño creciente, y las extensiones posteriores se asignan con 1785 cilindros.
  • Para conjuntos de datos de entre 32 y 64 GB, las primeras 127 extensiones se asignan en tamaño creciente, y las extensiones posteriores se asignan con 559 cilindros.
  • Para conjuntos de datos inferiores a 32 GB, las primeras 127 extensiones se asignan en tamaño creciente, y las extensiones posteriores se asignan con 127 cilindros.
fin del cambio

Este enfoque tiene varias ventajas:

  • Minimiza la posibilidad de desperdiciar espacio aumentando el tamaño de las extensiones secundarias lentamente al principio.
  • Evita asignaciones muy grandes para las extensiones restantes, lo que probablemente causaría fragmentación.
  • No requiere que los usuarios especifiquen valores SECQTY al crear y modificar espacios de tabla y espacios de índice.
  • En teoría, es posible alcanzar el tamaño máximo del conjunto de datos sin agotar las extensiones secundarias.

En el caso de una fragmentación grave del DASD, pueden ser necesarias hasta 5 extensiones para satisfacer una solicitud de extensión lógica. En esta situación, el conjunto de datos no alcanza el tamaño teórico del conjunto de datos.

Puede modificar la opción Eliminación de restricción de extensión. Al establecer la opción Eliminación de restricción de extensión en SÍ en la clase de datos SMS, el número máximo de extensiones puede ser de hasta 7257. Sin embargo, los límites de 123 extensiones por volumen y un recuento máximo de volumen de 59 por conjunto de datos siguen siendo válidos. Para obtener más información, consulte Uso de extensiones VSAM.

La siguiente tabla muestra la asignación máxima de extensiones secundarias para un espacio de tabla que no utiliza numeración de páginas relativa. Se asume que el tamaño de la primera extensión asignada es un cilindro.

Tabla 1. Asignación máxima de espacio de extensiones secundarias
Tamaño máximo del conjunto de datos (GB) Asignación máxima (cilindros) Número de extensiones para alcanzar el tamaño completo
1 127 54
2 127 75
4 127 107
8 127 154
16 127 246
32 559 172
64 559 255
Inicio del cambio128fin del cambio Inicio del cambio1785fin del cambio Inicio del cambio145fin del cambio
Inicio del cambio256fin del cambio Inicio del cambio1785fin del cambio Inicio del cambio254fin del cambio
Iniciar información de la interfaz de programación de uso general.Db2 utiliza una escala móvil para las asignaciones de extensión secundaria de espacios de tabla e índices cuando:
  • No especifica un valor para la cláusula SECQTY de una instrucción CREATE TABLESPACE o CREATE INDEX
  • Especifica SECQTY -1 en una instrucción ALTER TABLESPACE o ALTER INDEX.

De lo contrario, Db2 siempre utiliza el valor entero SECQTY especificado para las asignaciones de extensión secundarias, si se especifica explícitamente una.Finalizar la información de la interfaz de programación de uso general.

Excepción : En situaciones en las que el valor de la cantidad secundaria calculada no es lo suficientemente grande, puede especificar un valor mayor para la opción SECQTY al crear o modificar espacios de tablas e índices. Sin embargo, si especifica un valor para la opción SECQTY, Db2 utiliza el valor de la opción SECQTY para asignar una extensión secundaria solo si el valor de la opción es mayor que el valor que se deriva del algoritmo de escala móvil. Db2 , utiliza el siguiente cálculo para realizar esta determinación:
actual secondary extent size = MAX ( MIN ( ss_extent, MaxAlloc ), SECQTY)
En este cálculo, ss_extent representa el valor derivado del algoritmo de escala móvil, y MaxAlloc es la asignación máxima en cilindros, que depende del tamaño máximo potencial del conjunto de datos, como se describe en la Tabla 1. Este enfoque le permite alcanzar el tamaño máximo de página establecido más rápidamente. De lo contrario, Db2 utiliza el valor que se deriva del algoritmo de escala móvil.
Inicio del cambio

Si no proporciona un valor para la cantidad de asignación de espacio secundario, Db2 utiliza el siguiente cálculo para determinar un valor de asignación de espacio secundario.

MAX (ss_extent, MIN ( 0.1 × PRIQTY, MaxAlloc))

Db2 , utiliza el siguiente proceso para determinar la cantidad de asignación de espacio secundario:

  1. Db2 determina primero los dos valores siguientes para el arrendador:
    • 10 % del valor de la asignación de espacio principal (PRIQTY).
    • La asignación máxima en cilindros ( MaxAlloc ), tal como se describe en el cuadro 1.
  2. Db2 luego compara el resultado del paso anterior con el valor determinado por el algoritmo de escala móvil (ss_extent ) y utiliza el mayor de estos dos valores para la cantidad real de asignación de espacio secundario.
fin del cambio

Las cantidades de asignación de espacio secundario no superan los valores de la cláusula DSSIZE o PIECESIZE.

Si no desea que Db2 amplíe un conjunto de datos, puede especificar SECQTY 0 al crear o modificar el espacio de tabla o el índice. Cuando especifique este valor, la cantidad secundaria real será 0.

Especificar SECQTY 0 es una forma útil de evitar que los archivos de trabajo de DSNDB07 crezcan desproporcionadamente.

Cuando un espacio de mesa requiere una nueva pieza, la cantidad de asignación principal de la nueva pieza se determina utilizando el máximo de los siguientes valores:
  • La cantidad que se calcula mediante la metodología de escala móvil
  • El valor de cantidad principal, como se describe en Asignación de espacio principal
  • El valor SECQTY especificado