Sentencia CREATE WORK CLASS SET

La sentencia CREATE WORK CLASS SET define un conjunto de clases de trabajo.

Invocación

Esta sentencia puede incorporarse en un programa de aplicación o emitirse de forma interactiva. Es una sentencia ejecutable que puede prepararse de forma dinámica sólo si el comportamiento de ejecución de DYNAMICRULES está en vigor para el paquete (SQLSTATE 42509).

Autorización

Los privilegios que tiene el ID de autorización de la sentencia deben incluir la autorización WLMADM o DBADM.

Sintaxis

Leer el esquema de sintaxisOmitir el esquema de sintaxis visualCREATE WORK CLASS SETnombre-conjunto-clases-trabajo (,definición-clase-trabajo)
definición-clase-trabajo
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualWORK CLASSnombre-clase-trabajo work-attributescláusula-posición
atributos-trabajo
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualWORK TYPEREADcláusula-para-desde-acláusula-código-datosWRITEcláusula-para-desde-acláusula-código-datosCALLcláusula-esquemaDMLcláusula-para-desde-acláusula-código-datosDDLLOADALLcláusula-para-desde-acláusula-esquemacláusula-código-datos
cláusula-para-desde-a
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual FOR TIMERONCOSTCARDINALITYFROMdesde-valorTOUNBOUNDEDTOvalor-to
cláusula-código-datos
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual DATA TAG LIST CONTAINS  constante-entero
cláusula-esquema
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualROUTINES IN SCHEMAnombre-esquema
cláusula-posición
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualPOSITION LASTPOSITION BEFOREnombre-clase-trabajoPOSITION AFTERnombre-clase-trabajoPOSITION ATposición

Descripción

nombre-conjunto-clases-trabajo
Da nombre al conjunto de clases de trabajo. Este nombre consta de una sola parte. Se trata de un identificador de SQL (ordinario o delimitado). El nombre-conjunto-clases-trabajo no debe identificar un conjunto de clases de trabajo que exista en el servidor actual (SQLSTATE 42710). El nombre no debe empezar por los caracteres 'SYS' (SQLSTATE 42939).
definición-clase-trabajo
Especifica la definición de la clase de trabajo.
WORK CLASS nombre-clase-trabajo
Da nombre a la clase de trabajo. El nombre-clase-trabajo no debe identificar una clase de trabajo que ya existe en el conjunto de clases de trabajo del servidor actual (SQLSTATE 42710). El nombre-clase-trabajo no puede comenzar por 'SYS' (SQLSTATE 42939).
atributos-trabajo
Los atributos de la actividad de base de datos deben corresponderse con todos los atributos especificados en esta clase de trabajo si va a asociarse dicha actividad con esta clase de trabajo.
WORK TYPE
Especifica el tipo de actividad de base de datos.
READ
Esta actividad incluye las sentencias siguientes:
  • Todas las sentencias SELECT o SELECT INTO que no contengan una sentencia DELETE, INSERT, MERGE o UPDATE y todas las sentencias VALUES INTO
  • Todas las sentencias XQuery
WRITE
Esta actividad incluye las sentencias siguientes:
  • UPDATE
  • DELETE
  • INSERT
  • MERGE
  • Todas las sentencias SELECT que contengan una sentencia DELETE, INSERT o UPDATE y todas las sentencias VALUES INTO
CALL
Incluye la sentencia CALL. Se toma en consideración una sentencia CALL para una clase de trabajo con un tipo de trabajo de CALL o ALL.
DML
Incluye las sentencias listadas bajo READ y WRITE.
DDL
Esta actividad incluye las sentencias siguientes:
  • ALTER
  • CREATE
  • COMMENT
  • DECLARE GLOBAL TEMPORARY TABLE
  • DROP
  • FLUSH PACKAGE CACHE
  • GRANT
  • REFRESH TABLE
  • RENAME
  • REVOKE
  • SET INTEGRITY
LOAD
Operaciones de carga de base de datos.
ALL
Toda actividad de gestión de carga de trabajo (WLM) reconocida que se clasifique en una de las palabras clave enumeradas anteriormente en la descripción de WORK TYPE.
FOR
Indica el tipo de información que está especificándose en la cláusula FROM desde-valor TO al-valor. La cláusula FOR sólo se utiliza para los siguientes tipos de trabajo:
  • ALL
  • DML
  • READ
  • WRITE
TIMERONCOST
El coste estimado del trabajo, en acciones de temporización. Este valor se utiliza para determinar si el trabajo cae dentro del rango especificado en la cláusula FROM desde-valor TO al-valor.
CARDINALITY
La cardinalidad estimada del trabajo. Este valor se utiliza para determinar si el trabajo cae dentro del rango especificado en la cláusula FROM desde-valor TO al-valor.
FROM desde-valor TO UNBOUNDED o FROM desde-valor TO al-valor
Especifica el rango de valor de activación de temporizador (para el coste estimado) o cardinalidad en la que debe caer la actividad de la base de datos si va a formar parte de esta clase de trabajo. El rango incluye desde-valor y al-valor. Si esta cláusula no se especifica para la clase de trabajo, se incluirá todo trabajo que caiga en el tipo de trabajo especificado (es decir, el valor por omisión es FROM 0 TO UNBOUNDED). Este rango sólo se utiliza para los siguientes tipos de trabajo:
  • ALL
  • DML
  • READ
  • WRITE
FROM desde-valor TO UNBOUNDED
desde-valor debe ser cero o un valor DOUBLE positivo (SQLSTATE 5U019). El rango no tiene vinculación superior.
FROM desde-valor TO al-valor
desde-valor debe ser cero o un valor DOUBLE positivo y al-valor debe ser un valor DOUBLE positivo. desde-valor debe ser igual o más pequeño que al-valor (SQLSTATE 5U019).
DATA TAG LIST CONTAINS constante-entera
Especifica el valor del código que se proporciona a cualquier dato que puede tocar la actividad de la base de datos si va a formar parte de esta clase de trabajo. Si no se especifica la cláusula para la clase de trabajo, todo el trabajo que se inscribe dentro del tipo de trabajo especificado, independientemente de los datos que pueda tocar, se incluirá (es decir, el valor por omisión es ignorar el código de datos). Esta cláusula sólo se utiliza si el tipo de trabajo es READ, WRITE, DML o ALL y la actividad de base de datos es una sentencia DML. Los valores válidos para constante-entero son enteros del 1 al 9.
cláusula-esquema
ROUTINES IN SCHEMA nombre-esquema
Especifica el nombre de esquema del procedimiento que estará llamando la sentencia CALL. Esta cláusula sólo se utiliza si el tipo de trabajo es CALL o ALL y la actividad de base de datos es una sentencia CALL. Si no se especifica ningún valor, se incluirán todos los esquemas.
cláusula-posición
POSITION
Especifica el lugar en el que va a colocarse esta clase de trabajo dentro del conjunto de clases de trabajo, lo cual determina el orden en el que se evalúan estas clases de trabajo. Al efectuar la asignación de clases de trabajo en tiempo de ejecución, el gestor de base de datos determina en primer lugar el conjunto de clases de trabajo asociado al objeto, la base de datos o una superclase de servicio. Se selecciona la primera clase de trabajo coincidente en dicho conjunto de clases de trabajo. Si no se especifica esta palabra clave, la clase de trabajo se ubica en la última posición.
LAST
Especifica que la clase de trabajo va a colocarse en última posición en la lista ordenada de las clases de trabajo del conjunto de clases de trabajo. Es el valor por omisión.
BEFORE nombre-clase-trabajo
Especifica que la clase de trabajo va a colocarse antes de la clase de trabajo nombre-clase-trabajo de la lista. El nombre-clase-trabajo debe identificar una clase de trabajo del conjunto de clases de trabajo que existe en el servidor actual (SQLSTATE 42704).
AFTER nombre-clase-trabajo
Especifica que la clase de trabajo va a colocarse detrás de la clase de trabajo nombre-clase-trabajo de la lista. El nombre-clase-trabajo debe identificar una clase de trabajo del conjunto de clases de trabajo que existe en el servidor actual (SQLSTATE 42704).
AT posición
Especifica la posición absoluta en la que la carga de trabajo va a colocarse en el conjunto de clases de trabajo en la lista ordenada de clases de trabajo. Este valor puede ser cualquier entero positivo (diferente de cero) (SQLSTATE 42615). Si posición es mayor que el número de clases de trabajo existentes más una, la clase de trabajo se sitúa en la última posición del conjunto de clases de trabajo.

Normas

  • Una sentencia de SQL exclusiva de gestión de carga de trabajo (WLM) debe ir después de una sentencia COMMIT o ROLLBACK (SQLSTATE 5U021). Las sentencias de SQL exclusivas de WLM son:
    • CREATE HISTOGRAM TEMPLATE, ALTER HISTOGRAM TEMPLATE o DROP (HISTOGRAM TEMPLATE)
    • CREATE SERVICE CLASS, ALTER SERVICE CLASS o DROP (SERVICE CLASS)
    • CREATE THRESHOLD, ALTER THRESHOLD o DROP (THRESHOLD)
    • CREATE WORK ACTION SET, ALTER WORK ACTION SET o DROP (WORK ACTION SET)
    • CREATE WORK CLASS SET, ALTER WORK CLASS SET o DROP (WORK CLASS SET)
    • CREATE WORKLOAD, ALTER WORKLOAD o DROP (WORKLOAD)
    • GRANT (privilegios de carga de trabajo) o REVOKE (privilegios de carga de trabajo)
  • Una sentencia de SQL exclusiva de WLM no puede emitirse en una transacción global (SQLSTATE 51041) como por ejemplo, una transacción XA.

Notas

  • Los cambios se graban en el catálogo del sistema, pero no surten efecto hasta que se confirmen, incluso para la conexión que emite la sentencia.
  • Sólo se permite una sentencia de SQL exclusiva de WLM no confirmada a la vez entre todas las particiones. Si se ejecuta una sentencia de SQL exclusiva de WLM sin confirmar, las siguientes sentencias de SQL exclusivas de WLM esperarán hasta que se confirme o retrotraiga la sentencia de SQL exclusiva de XML actual.

Ejemplos

  • Ejemplo 1: Cree un conjunto de clases de trabajo denominado LARGE_QUERIES que tenga un conjunto de clases de trabajo que representen todo el DML con un coste estimado superior a 9999 y una cardinalidad estimada superior a 1000.
       CREATE WORK CLASS
    SET LARGE_QUERIES
         (WORK CLASS LARGE_ESTIMATED_COST WORK TYPE DML
          FOR TIMERONCOST FROM 9999 TO UNBOUNDED,
          WORK CLASS LARGE_CARDINALITY WORK TYPE DML
          FOR CARDINALITY FROM 1000 TO UNBOUNDED)
  • Ejemplo 2: Cree una clase de trabajo denominada DML_SELECTS que tenga una clase de trabajo que represente a todas las sentencias DML SELECT que no contengan una sentencia DELETE, INSERT, MERGE o UPDATE.
       CREATE WORK CLASS SET DML_SELECTS
         (WORK CLASS SELECT_CLASS WORK TYPE READ)