Inicio del cambio

CREATE LOB TABLESPACE

La sentencia CREATE LOB TABLESPACE define un espacio de tabla de objetos grandes (LOB) en el servidor actual. Si los datos de una tabla no se ajustan totalmente a una página de datos, puede definir una o más columnas como columnas LOB. Cada columna LOB debe tener una tabla auxiliar asociada en un espacio de tabla LOB. Si el espacio de tabla para la tabla base está particionado, se necesita una tabla auxiliar asociada en un espacio de tabla LOB para cada columna LOB, para cada partición del espacio de tabla para la tabla base.

Inicio del cambioNo utilice esta declaración si Db2 crea implícitamente el espacio de tabla LOB. Para más información, consulte Creación implícita de espacio de tabla LOB.fin del cambio

Para obtener información sobre la creación explícita de una tabla auxiliar, que define la relación entre la columna LOB de la tabla base y un espacio de tabla LOB, consulte la instrucción CREATE AUXILIARY TABLE.

Inicio del cambioPara obtener información sobre cómo crear espacios de tablas que no sean espacios de tablas LOB, consulte la instrucción CREATE TABLESPACE.fin del cambio

Invocación para CREATE LOB TABLESPACE

Esta sentencia puede incorporarse en un programa de aplicación o emitirse de forma interactiva. Es una instrucción ejecutable que puede prepararse dinámicamente solo si el comportamiento DYNAMICRULES RUN está en vigor. Para obtener más información, consulte ID de autorización y SQL dinámico.

Autorización para CREATE LOB TABLESPACE

El conjunto de privilegios que se define a continuación debe incluir al menos uno de los siguientes:

  • El privilegio CREATETS para la base de datos
  • Autoridad DBADM, DBCTRL o DBMAINT para la base de datos
  • Autorización SYSADM o SYSCTRL
  • DBADM del sistema
  • Inicio del cambioAutoridad de instalación SYSOPR (cuando el SQLID actual del proceso está configurado como SYSINSTL)fin del cambio

Si la base de datos se crea de forma implícita, los privilegios de la base de datos deben estar en la base de datos implícita o en DSNDB04.

Pueden ser necesarios privilegios adicionales, como se explica en la descripción de las cláusulas BUFFERPOOL y USING STOGROUP.

Conjunto de privilegios:

Si la sentencia está incrustada en un programa de aplicación, el conjunto de privilegios son los privilegios que tiene el propietario del plan o paquete. Si la aplicación está vinculada en un contexto de confianza con la cláusula ROLE AS OBJECT OWNER especificada, un rol es el propietario. De lo contrario, el propietario es un ID de autorización.

Si el estado se prepara dinámicamente, el conjunto de privilegios son los privilegios que posee el ID de autorización SQL del proceso, a menos que el proceso se encuentre dentro de un contexto de confianza y se especifique la cláusula ROLE AS OBJECT OWNER. En ese caso, los privilegios establecidos son los privilegios que posee el rol asociado con el ID de autorización principal del proceso.

Sintaxis para CREATE LOB TABLESPACE

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visual CREATE LOB TABLESPACE nombre-del-espacio-de-la-tabla 1INDSNDB04INnombre-base-datosBUFFERPOOLBPNAMECLOSE YESCLOSE NOCOMPRESS NOCOMPRESS YESDEFINE YESDEFINE NODSSIZE4 GDSSIZEenteroGgbpcache-bloqueLOCKMAXSYSTEMenterotamaño de bloqueoLOGGEDNOT LOGGEDusing-block
Notas:
  • 1 La misma cláusula no debe especificarse más de una vez.

gbpcache-bloque:

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualGBPCACHE CHANGEDGBPCACHE ALLGBPCACHE SYSTEMGBPCACHE NONE

bloqueo de tamaño:

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualLOCKSIZE ANYLOCKSIZE LOB

bloque de uso:

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visual USING VCATnombre-catálogoSTOGROUPnombre del grupo de tiendasPRIQTYenteroSECQTYenteroERASE NOERASE YES1
Notas:
  • 1 La misma cláusula no debe especificarse más de una vez.
nombre-del-espacio-de-la-tabla
Nombra el espacio de tablas. El nombre, calificado con el nombre de la base de datos especificado implícita o explícitamente por la cláusula IN, no debe identificar un espacio de tabla, espacio de índice o espacio de tabla LOB que exista en el servidor actual o que exista en la tabla de catálogo SYSPENDINGOBJECTS.
EN nombre-base-datos
Especifica la base de datos en la que se crea el espacio de tabla. El espacio de tabla LOB debe estar en la misma base de datos que su espacio de tabla base asociado. nombre-base-datos debe identificar una base de datos que exista en el servidor actual y no debe especificar lo siguiente:
  • DSNDB06
  • Una base de datos de archivos de trabajo
  • Una base de datos TEMP
  • Una base de datos creada implícitamente

DSNDB04 es el valor predeterminado.

BUFFERPOOL bpname
Identifica el búfer compartido que se utilizará para el espacio de tabla y determina el tamaño de página del espacio de tabla. Para las memorias intermedias de páginas 4KB, 8KB, 16KB y 32KB, los tamaños de página son 4 KB, 8 KB, 16 KB y 32 KB, respectivamente. El nombre de la base de datos debe identificar un grupo de búferes activado, y el conjunto de privilegios debe incluir la autoridad SYSADM o SYSCTRL, o el privilegio USE en el grupo de búferes.

Si no especifica la cláusula BUFFERPOOL, el grupo de búferes predeterminado es el que se especifica en el campo DEFAULT BUFFER POOL FOR USER LOB DATA del panel de instalación DSNTIP1.

Consulte Convenciones de nomenclatura en SQL para obtener más detalles sobre bpname. Consulte el comando -ALTER BUFFERPOOL ( Db2 ) para obtener una descripción de los grupos de búfer activos e inactivos.

CLOSE
Cuando se alcanza el límite en el número de conjuntos de datos abiertos, especifica la prioridad en la que se cierran los conjuntos de datos.
YES
Elegible para el cierre antes de CERRAR NO hay conjuntos de datos. CERRAR SÍ es el valor predeterminado.
NEE
Elegible para el cierre después de que todos los conjuntos de datos elegibles para el CIERRE SÍ estén cerrados.
Inicio del cambioCOMPRESSfin del cambio
Inicio del cambioEspecifica si la compresión de datos se aplica a los datos LOB en el espacio de tabla.
Inicio del cambioSe requieren las siguientes condiciones para la compresión LOB en Db2 for z/OS®:
  • Db2 12 debe estar en el nivel de función 500 o superior.
  • El zEDC hardware y el software deben estar disponibles y configurados en el z/OS sistema. Para más información, consulte los requisitos para la compresión de datos en zEnterprise.

    En el intercambio de datos, el rendimiento del sistema puede degradarse drásticamente si un miembro accede a datos LOB comprimidos y el zEDC hardware y el software no están configurados en z/OS.

  • El espacio de tabla LOB debe estar asociado a una tabla base que esté en un espacio de tabla universal.
  • La longitud total de todo el LOB debe ser mayor que el tamaño de página de datos definido, de lo contrario, el LOB no se comprime.
fin del cambio

Para obtener más información, consulte Comprimir datos LOB.

YES
Especifica la compresión de datos. Los datos LOB no se comprimen hasta que la utilidad LOAD o REORG se ejecuta en la tabla en el espacio de tabla, o hasta que se realiza una operación de inserción a través de la operación de inserción.
NEE
Especifica que no se comprima ningún dato para el espacio de tabla.
fin del cambio
DEFINE
Especifica cuándo se crean físicamente los conjuntos de datos subyacentes para el espacio de tabla.
YES
Los conjuntos de datos se asignan cuando se crea el espacio de tabla (cuando se ejecuta la instrucción CREATE LOB TABLESPACE). El valor predeterminado es YES.
NEE
Los conjuntos de datos no se asignan hasta que los datos se insertan en el espacio de la tabla. DEFINE NO solo es aplicable a conjuntos de datos gestionados por Db2(se especifica USING STOGROUP). DEFINE NO se ignora para los conjuntos de datos gestionados por el usuario (se especifica USING VCAT). Db2 utiliza la columna SPACE en la tabla de catálogo SYSTABLEPART para registrar el estado de los conjuntos de datos (sin definir o asignados).

DEFINE NO no se recomienda si tiene la intención de utilizar herramientas fuera de Db2 para manipular datos, como cargar datos, porque los conjuntos de datos podrían existir cuando Db2 no espera que existan. Cuando Db2 encuentra este estado inconsistente, las aplicaciones recibirán un error.

Para los espacios de tabla que se crean con DEFINE NO, la recuperación a un momento dado no funcionará antes de que existan conjuntos de datos y antes de que exista una copia de recuperación.

DSSIZE entero G

Especifica el tamaño máximo de cada conjunto de datos en gigabytes enteros para cada conjunto de datos en el espacio de tabla LOB.

Si no se especifica DSSIZE, el valor predeterminado es 4 G. El número máximo de conjuntos de datos es 254.

Para especificar un valor superior a 4 G, los conjuntos de datos para el espacio de tabla deben estar asociados a una clase de datos de memoria virtual extendida ( DFSMS ) que se haya especificado con formato extendido y direccionabilidad extendida.

Para obtener una descripción del tamaño máximo de un espacio de tabla LOB (o el tamaño máximo de datos LOB para cada columna de una tabla base), consulte Espacios de tabla LOB.

GBPCACHE
En un entorno de intercambio de datos, especifica qué páginas del espacio de tablas se escriben en el grupo de búferes. En un entorno sin intercambio de datos, puede especificar GBPCACHE, pero se ignora.
CAMBIADO
Cuando hay interés interDb2 e R/W en el espacio de la tabla, se escriben páginas actualizadas en el grupo de búfer. Cuando no hay interés interDb2 , la memoria intermedia del grupo no se utiliza. InterDb2 R/W interest exists when more than one member in the data sharing group has the table space open, and at least one member has it open for update. GBPCACHE CHANGED es el valor predeterminado.
Recomendación: Inicio del cambioUtilice la opción GBPCACHE CHANGED. Debido a los patrones de uso de los LOBs, el uso de GBPCACHE CHANGED puede ayudar a evitar escrituras excesivas y síncronas en disco y en el pool de buffer de grupo.fin del cambio

Si el espacio de la tabla está en un grupo de memoria intermedia que está definido para ser utilizado sólo para la invalidación cruzada (GBPCACHE NO), CHANGED se ignora y no se almacenan páginas en caché en el grupo de memoria intermedia.

ALL
Indica que las páginas deben almacenarse en caché en el grupo de búferes a medida que se leen desde DASD.

Excepción : En el caso de un único miembro de actualización de Db2 cuando ningún otro miembro de Db2 tiene interés en el conjunto de páginas, no se almacenan páginas en caché en el grupo de búferes.

Si el espacio de la tabla está en un grupo de memoria intermedia que está definido para ser utilizado solo para la invalidación cruzada (GBPCACHE NO), se ignora ALL y no se almacenan páginas en caché en el grupo de memoria intermedia.

SYSTEM
Indica que solo las páginas del sistema modificadas dentro del espacio de la tabla LOB se almacenarán en caché en el grupo de búferes. Una página de sistema es una página de mapa espacial o cualquier otra página que no contenga valores de datos reales.
NONE
Indica que no se deben almacenar páginas en la memoria intermedia del grupo. Db2 utiliza el grupo de memoria intermedia compartida solo para la invalidación cruzada.
LOCKMAX
Especifica el número máximo de bloqueos que un proceso de aplicación puede mantener simultáneamente en el espacio de la tabla. Si un programa solicita más de ese número, se intensifican los bloqueos. Los bloqueos se liberan y el bloqueo de intención en el espacio de la mesa se promueve al modo S o X.
entero
Especifica el número de bloqueos permitidos antes de escalar, en el rango de 0 a 2147483647.

El cero (0) indica que el número de bloqueos en el espacio de la mesa no se cuenta y no se produce una escalada.

SYSTEM
Inicio del cambioFL 507 Especifica que Db2 determina el número máximo de bloqueos que un programa puede mantener simultáneamente en el espacio de tablas a partir de la variable global incorporada SYSIBMADM.MAX_LOCKS_PER_TABLESPACE.

Para más información, consulte la variable global incorporada MAX_LOCKS_PER_TABLESPACE.

fin del cambio
La siguiente tabla resume los resultados de especificar un valor LOCKSIZE omitiendo LOCKMAX.
LOCKSIZE Resultante LOCKMAX
ANY SYSTEM
ESPACIO EN PÁGINAS, LOB 0

Inicio del cambioSi el tamaño de bloqueo es TABLESPACE, LOCKMAX debe omitirse, o su valor debe ser 0.fin del cambio

LOCKSIZE
Especifica el tamaño de los bloqueos utilizados dentro del espacio de la tabla y, en algunos casos, también el umbral en el que se produce la escalada de bloqueos.
ANY
Especifica que Db2 puede utilizar cualquier tamaño de candado.

Inicio del cambioFL 507 En la mayoría de los casos, Db2 utiliza LOCKSIZE LOB LOCKMAX SYSTEM para los espacios de tabla LOB. Sin embargo, cuando el número de bloqueos adquiridos para el espacio de tabla supera el número máximo de bloqueos permitidos para un espacio de tabla (el valor de la variable global incorporada LOB, " SYSIBMADM.MAX_LOCKS_PER_TABLESPACE "), los bloqueos LOB se liberan y el bloqueo se establece en el siguiente nivel superior. Para más información, consulte la variable global integrada MAX_LOCKS_PER_TABLESPACE.fin del cambio

Si el espacio de la tabla se crea implícitamente, Db2 utiliza LOCKSIZE ANY.

TABLESPACE
Especifica bloqueos de espacio de tabla.
LOB
Especifica los bloqueos LOB.
LOGGED o NOT LOGGED
Especifica si los cambios que se realizan en los datos del espacio de tabla especificado se registran en el registro. Esta configuración se aplica a todos los índices de la tabla. Los índices auxiliares heredan el atributo de registro del espacio de tabla base asociado.
LOGGED
Especifica que los cambios que se realizan en los datos del espacio de tabla especificado se registran en el registro.

LOGGED es el valor predeterminado.

NOT LOGGED
Especifica que los cambios que se realizan en los datos del espacio de tabla especificado no se registran en el registro.

NOT LOGGED evita que la información de deshacer y rehacer se registre en el registro; sin embargo, la información de control para el espacio de tabla especificado seguirá registrándose en el registro.

Bloque USAR
Si omite USING, el grupo de almacenamiento predeterminado de la base de datos debe existir. La cláusula USING indica si el conjunto de datos para el espacio de tabla lo define usted o Db2. Si Db2 va a definir el conjunto de datos, la cláusula también proporciona parámetros de asignación de espacio y una regla de borrado.

Si omite USING, Db2 define los conjuntos de datos utilizando el grupo de almacenamiento predeterminado de la base de datos y los valores predeterminados para PRIQTY, SECQTY y ERASE.

Nombre del catálogo VCAT
Especifica que el usuario gestiona el primer conjunto de datos para el espacio de tabla y, si es necesario, también gestiona los siguientes conjuntos de datos.

Los conjuntos de datos son conjuntos de datos lineales VSAM catalogados en el catálogo de recursos de catálogo integrado que catalog-name identifica. Para obtener más información sobre los valores de nombre de catálogo, consulte Convenciones de nomenclatura en SQL.

Más de un subsistema Db2 puede compartir los catálogos de recursos de catálogo integrados con el servidor actual. Para evitar la posibilidad de que esos subsistemas intenten asignar el mismo nombre a distintos conjuntos de datos, especifique un valor catalog-name que no utilice ningún otro subsistema Db2.

STOGROUP stogroup-name
Especifica que Db2 definirá y gestionará los conjuntos de datos para el espacio de tabla. Cada conjunto de datos se definirá en un volumen del grupo de almacenamiento identificado. Los valores especificados (o los valores predeterminados) para PRIQTY y SECQTY determinan las asignaciones primaria y secundaria para el conjunto de datos. El grupo de almacenamiento proporciona el nombre de un volumen para el conjunto de datos y el calificador de primer nivel para el nombre del conjunto de datos. El calificador de primer nivel es también el nombre o un alias1 del catálogo integrado en el que se va a catalogar el conjunto de datos. Las convenciones de nomenclatura para el conjunto de datos son las mismas que si el conjunto de datos fuera gestionado por el usuario. Como se mencionó anteriormente para VCAT, el calificador de primer nivel podría causar conflictos de nomenclatura si el Db2 local puede compartir catálogos de instalaciones de catálogo integrados con otros subsistemas de Db2 .

stogroup-name debe identificar un grupo de almacenamiento que exista en el servidor actual. Se requiere la autoridad SYSADM o SYSCTRL, o el privilegio USE en el grupo de almacenamiento.

La descripción del grupo de almacenamiento debe incluir al menos un número de serie de volumen, o debe indicar que la elección de los volúmenes se deja al Subsistema de Gestión de Almacenamiento (SMS). Si en la descripción aparecen números de serie de volúmenes, cada uno debe identificar un volumen al que pueda acceder z/OS para la asignación dinámica del conjunto de datos, y todos los volúmenes identificados deben ser del mismo tipo de dispositivo.

El catálogo de instalaciones integrado utilizado para el grupo de almacenamiento no debe contener una entrada para el primer conjunto de datos del espacio de tabla. Si el catálogo integrado está protegido por contraseña, la descripción del grupo de almacenamiento debe incluir una contraseña válida.

PRIQTY ent ero

Especifica la asignación mínima de espacio primario para un conjunto de datos gestionado por un Db2. entero debe ser un entero positivo, o -1. En general, cuando se especifica PRIQTY con un valor entero positivo, la asignación de espacio principal es de al menos n kilob ytes, donde n es el valor del entero. Sin embargo, existen las siguientes excepciones:

  • Para tamaños de página de 4KB, si el número entero es mayor que 0 y menor que 200, n es 200.
  • Para tamaños de página 8KB, si el número entero es mayor que 0 y menor que 400, n es 400.
  • Para tamaños de página de 16KB, si el número entero es mayor que 0 y menor que 800, n es 800.
  • Para tamaños de página de 32KB, si el número entero es mayor que 0 y menor que 1600, n es 1600.
  • Para cualquier tamaño de página, si el número entero es mayor que 67108864, n es 67108864.

Si no especifica PRIQTY, o especifica PRIQTY con un valor de -1, Db2 utiliza un valor predeterminado para la asignación de espacio primario; para obtener información sobre cómo Db2 determina el valor predeterminado, consulte Asignación de espacio primario para espacios de tablas e índices Db2.

Si especifica PRIQTY y no especifica un valor de -1, Db2 especifica la asignación de espacio principal para acceder a los servicios de métodos utilizando el múltiplo más pequeño de p KB no inferior a n, donde p es el tamaño de página del espacio de tabla. El espacio asignado puede ser mayor que la cantidad de espacio solicitada por Db2. Por ejemplo, podría ser el menor número de pistas que se ajusten a la solicitud. La cantidad de espacio de almacenamiento solicitado debe estar disponible en algún volumen del grupo de almacenamiento, en función de las restricciones de asignación de espacio VSAM. De lo contrario, la asignación de espacio principal fallará. Para estimar con mayor precisión la cantidad real de almacenamiento, consulte el comando DEFINIR CLÚSTER.

Al ejecutar esta instrucción, solo se crea un conjunto de datos. Sin embargo, es posible que tenga más datos de los que puede contener este conjunto de datos. Db2 define automáticamente más conjuntos de datos cuando son necesarios. Independientemente del valor en PRIQTY, cuando un conjunto de datos alcanza su tamaño máximo, Db2 crea uno nuevo. Para permitir que un conjunto de datos alcance su tamaño máximo sin quedarse sin extensiones, se recomienda que permita que Db2 elija automáticamente el valor de las asignaciones de espacio secundario para extensiones.

Si decide especificar explícitamente SECQTY, para evitar desperdiciar espacio, utilice la siguiente fórmula para asegurarse de que PRIQTY y sus valores de extensión secundaria asociados no superen el tamaño máximo del conjunto de datos:
PRIQTY + (number of extents * SECQTY) <= DSSIZE (implicit or explicit)
SECQTY entero
Especifica la asignación de espacio secundario mínimo para un conjunto de datos gestionado por un Db2. entero debe ser un entero positivo, 0 o un punto flotante ( -1 ). Si no especifica SECQTY, o especifica SECQTY con un valor de -1, Db2 utiliza una fórmula para determinar un valor. Para obtener información sobre el valor real que se utiliza para la asignación de espacio secundario, tanto si especifica un valor como si no, consulte Asignación de espacio principal para espacios de tablas e índices de Db2.

Si especifica SECQTY y no especifica un valor de -1, Db2 especifica la asignación de espacio secundario para acceder a los servicios de método utilizando el múltiplo más pequeño de p KB no inferior a un entero, donde p es el tamaño de página del espacio de tabla. El espacio asignado puede ser mayor que la cantidad de espacio solicitada por Db2. Por ejemplo, podría ser el menor número de pistas que se ajusten a la solicitud. Para estimar con mayor precisión la cantidad real de almacenamiento, consulte el comando DEFINIR CLÚSTER.

ERASE
Indica si los conjuntos de datos gestionados por el espacio de tablas ( Db2) deben borrarse cuando se eliminan durante la ejecución de una utilidad o una instrucción SQL que elimina el espacio de tablas.
NEE
No borra los conjuntos de datos. Las operaciones que impliquen la eliminación de conjuntos de datos funcionarán mejor que BORRAR SÍ. Sin embargo, los datos siguen siendo accesibles, aunque no a través de Db2. Este es el valor predeterminado.
YES
Borra los conjuntos de datos. Como medida de seguridad, Db2 sobrescribe todos los datos de los conjuntos de datos con ceros antes de borrarlos.

Notas para CREAR TABLESPACE DE LOB

Reglas para la asignación de espacio primario y secundario
Puede especificar la asignación de espacio primario y secundario o dejar que Db2 los elija. Si Db2 elige los valores, especialmente la cantidad de espacio secundario, aumenta la posibilidad de alcanzar el tamaño máximo del conjunto de datos antes de quedarse sin extensiones. Para más información, consulte la asignación de espacio en Db2.
Determinar el número de espacios de tabla LOB que se deben crear

Para las tablas particionadas, cada partición de la tabla base requiere un espacio de tabla LOB, una tabla auxiliar y un índice auxiliar independientes para cada columna LOB.

Sintaxis alternativa y sinónimos

db2z_addpartition

Inicio del cambioPor compatibilidad con versiones o niveles de función anteriores de Db2 , se admiten las siguientes palabras clave:fin del cambio
  • Al especificar los atributos de registro para un espacio de tabla, puede especificar LOG YES como sinónimo de LOGGED, y puede especificar LOG NO como sinónimo de NOT LOGGED.

Aunque estas palabras clave se admiten como alternativas, no son la sintaxis preferida.

Ejemplo para CREATE LOB TABLESPACE

Supongamos que se ha añadido una columna llamada EMP_PHOTO con un tipo de datos BLOB ( 110K ) a la tabla de empleados de muestra para la foto de cada empleado. Crear espacio de tabla LOB PHOTOLTS en la base de datos DSN8D12A para la tabla auxiliar que contendrá los datos BLOB.

Deje que Db2 defina los conjuntos de datos para el espacio de tabla, utilizando el grupo de almacenamiento DSN8G120. Para cada conjunto de datos, la asignación de espacio principal es de 3200 kilobytes, y la asignación de espacio secundaria es de 1600 kilobytes. No es necesario borrar los conjuntos de datos antes de eliminarlos. (Dado que ERASE NO es el valor predeterminado, no es necesario especificar explícitamente la cláusula para obtener ese comportamiento)
   CREATE LOB TABLESPACE PHOTOLTS
     IN DSN8D12A
     USING STOGROUP DSN8G120
       PRIQTY 3200
       SECQTY 1600
     LOCKSIZE LOB
     BUFFERPOOL BP16K0
     GBPCACHE SYSTEM
     NOT LOGGED
     CLOSE NO;
fin del cambio
1 El alias de un catálogo integrado.