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
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)
