Paquete CS_RESOURCE_MANAGER

El paquete CS_RESOURCE_MANAGER proporciona una interfaz para mostrar y actualizar los parámetros del grupo de consumidores y para revertir los parámetros a los valores por defecto.

CLEAR_PENDING_AREA Procedimiento

Este procedimiento borra los cambios pendientes para el gestor de recursos.

Sintaxis


CS_RESOURCE_MANAGER.CLEAR_PENDING_AREA;

CREATE_CONSUMER_GROUP Procedimiento

Este procedimiento define los grupos de consumidores de recursos.

Sintaxis

CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
   consumer_group  IN VARCHAR2,
   comment         IN VARCHAR2 DEFAULT NULL);

Parámetros

Parámetro Descripción

consumer_group

Nombre del grupo de consumidores

comment

Comentario de usuario

Notas de uso

Puede determinar cómo se colocan las sesiones en grupos de consumidores mediante:

  • Asignación de cadena de conexión: especifique CONSUMER_GROUP en la cadena de conexión de la base de datos, como se muestra a continuación. Este enfoque tiene prioridad sobre la asignación y sustituirá las asignaciones definidas.

    (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-1.oraclecloud.com))(connect_data=(service_name=my_database_low.adb.oraclecloud.com)(CONSUMER_GROUP=OLTP_LOW))(security=(ssl_server_dn_match=yes)))
  • Reglas de asignación: utilice los subprogramas set_consumer_group_mapping y set_consumer_group_mapping_pri para asignar sesiones o aplicaciones a grupos de consumidores en función de atributos como nombre de usuario o nombre de aplicación.

Ejemplos

BEGIN
  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'OLTP_HIGH',
    comment        => 'Priority OLTP sessions');

  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'OLTP_LOW',
    comment        => 'Background/low-priority OLTP');

  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'LH_BATCH',
    comment        => 'Batch / reporting workloads');  
END;
/

CREATE_PENDING_AREA Procedimiento

Este procedimiento crea un área pendiente para realizar cambios en los objetos del gestor de recursos.

El área pendiente se puede considerar como un área nuevo para los cambios en el esquema del plan. El administrador crea esta área pendiente, realiza los cambios necesarios, posiblemente valida estos cambios y solo cuando se completa el envío, estos cambios se activan.

Sintaxis

CS_RESOURCE_MANAGER.CREATE_PENDING_AREA;

Notas de uso

Puede, en cualquier momento, mientras el área pendiente está activa, ver el esquema del plan actual con los cambios mediante la selección de las vistas de usuario adecuadas. Consulte Visualización de la Configuración y el Estado del Gestor de Recursos de la Base de Datos para obtener más información.

En cualquier momento, puede borrar el área pendiente si desea detener los cambios actuales. También puede llamar al procedimiento VALIDATE para confirmar si los cambios que ha realizado son válidos. No es necesario realizar los cambios en un orden determinado para mantener un grupo coherente de entradas. Estas comprobaciones también se realizan implícitamente cuando se envía el área pendiente.

Nota

Oracle permite grupos de consumidores "huérfanos" (es decir, grupos de consumidores que no tienen directivas de plan que hagan referencia a ellos). Esto se anticipa a que un administrador puede querer crear un grupo de consumidores que no se esté utilizando actualmente, pero que se utilizará en el futuro.
Para los planes de recursos, se deben cumplir las siguientes reglas y se comprueban cada vez que se ejecutan los procedimientos de validación o envío:
  • Ningún esquema de plan puede contener bucles.
  • Deben existir todos los planes y grupos de consumidores a los que hacen referencia las directivas del plan.
  • Todos los planes deben tener directivas de plan que hagan referencia a planes o grupos de consumidores.
  • Todos los porcentajes de un nivel determinado no deben sumar más de 100 para el método de asignación de recursos de énfasis.
  • No se puede suprimir ningún plan que esté siendo utilizado actualmente como plan principal por una instancia activa.
  • No puede haber más de 28 directivas de plan que provengan de un plan dado (es decir, ningún plan puede tener más de 28 hijos).
  • No puede haber más de 28 grupos de consumidores en ningún esquema de plan activo.
  • Los planes y los grupos de consumidores utilizan el mismo espacio de nombres; por lo tanto, ningún plan puede tener el mismo nombre que cualquier grupo de consumidores.
  • Debe haber una directiva de plan para OTHER_GROUPS en algún lugar de cualquier esquema de plan activo. Esto garantiza que a una sesión no cubierta por el plan activo actualmente se le asignen recursos según lo especificado por la directiva OTHER_GROUPS.

Si alguna de las reglas anteriores se rompe cuando se comprueba mediante los procedimientos VALIDATE o SUBMIT, se devuelve un mensaje de error informativo. A continuación, puede realizar cambios para solucionar uno o más problemas y volver a ejecutar los procedimientos de validación o envío.

CREATE_PLAN Procedimiento

Este procedimiento crea entradas que definen planes de recursos.

Sintaxis

CS_RESOURCE_MANAGER.CREATE_PLAN (
   plan                       IN   VARCHAR2, 
   comment                    IN   VARCHAR2 DEFAULT NULL);

Parámetros

Parámetro Descripción

plan

Nombre del plan de recursos

comment

Comentario de usuario

Ejemplo

BEGIN
  CS_RESOURCE_MANAGER.CREATE_PLAN(
    plan    => 'OLTP_LH_PLAN',
    comment => 'Split resources between OLTP and Lakehouse workload types');
END;
/

CREATE_PLAN_DIRECTIVE Procedimiento

Este procedimiento crea directivas de plan de recursos.

Sintaxis

CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
   plan                          IN VARCHAR2, 
   consumer_group                IN VARCHAR2, 
   comment                       IN VARCHAR2 DEFAULT NULL, 
   shares                        IN NUMBER   DEFAULT NULL,
   utilization_limit             IN NUMBER   DEFAULT NULL,
   switch_action                 IN VARCHAR2 DEFAULT NULL,
   cpu_time_limit                IN NUMBER   DEFAULT NULL,
   io_megabytes_limit            IN NUMBER   DEFAULT NULL,
   io_reqs_limit                 IN NUMBER   DEFAULT NULL,
   io_logical_limit              IN NUMBER   DEFAULT NULL,
   elapsed_time_limit            IN NUMBER   DEFAULT NULL,
   max_idle_time                 IN NUMBER   DEFAULT NULL,
   max_idle_blocker_time         IN NUMBER   DEFAULT NULL,    
   active_session_limit          IN NUMBER   DEFAULT NULL,
   active_session_timeout        IN NUMBER   DEFAULT NULL,
   parallel_degree_limit         IN NUMBER   DEFAULT NULL,
   concurrency_limit             IN NUMBER   DEFAULT NULL,
   session_pga_limit             IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout        IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout_action IN NUMBER   DEFAULT NULL);

Parámetros

Parámetro Descripción

plan

Nombre del plan de recursos

consumer_group

Nombre del grupo de consumidores

comment

Comentario para la directiva del plan

shares

Porcentaje de asignación de recursos para el grupo de consumidores. Los recursos compartidos determinan la cantidad de recursos de CPU y E/S que obtiene un grupo de consumidores en relación con otros grupos de consumidores. Por ejemplo, un grupo de consumidores con una cuota de 2 obtendrá el doble de recursos de CPU y E/S que un grupo de consumidores con una cuota de 1.

Si no especifica acciones para un grupo de consumidores en su plan, el recurso compartido de ese grupo de consumidores se definirá en 1.

utilization_limit

Límites de recursos que determinan el máximo de recursos de CPU y E/S que puede obtener un grupo de consumidores.

switch_action

Medidas que deben adoptarse al alcanzar cualquiera de los límites especificados en las directivas. Los valores válidos son cancel_sql, kill_session o un nombre de grupo de consumidores al que cambiar.

cpu_time_limit

Tiempo en la CPU (en segundos) que se puede ejecutar una sesión antes de realizar una acción. El valor por defecto es NULL, lo que significa ilimitado.

io_megabytes_limit

Cantidad de E/S (en MB) que una sesión puede emitir antes de que se realice una acción. El valor por defecto es NULL, lo que significa ilimitado.

io_reqs_limit

Número de solicitudes de E/S que una sesión puede emitir antes de que se realice una acción. El valor por defecto es NULL, lo que significa ilimitado.

io_logical_limit

Número de E/S lógicas que dispararán la acción especificada por switch_action.

elapsed_time_limit

Tiempo transcurrido (en segundos) que disparará la acción especificada por switch_action.

max_idle_time

Número de segundos que una sesión puede estar inactiva antes de que finalice la sesión. El valor por defecto es NULL, lo que significa ilimitado.

max_idle_blocker_time

Cantidad máxima de tiempo en segundos que una sesión puede estar inactiva antes de que finalice la sesión, si la sesión mantiene un bloqueo o un recurso que necesitan otras sesiones.

active_session_limit

Número máximo de sesiones que pueden tener simultáneamente una llamada activa.

active_session_timeout

Tiempo especificado (en segundos) tras el cual se agota el tiempo de espera de una llamada en la cola de sesiones inactiva (en espera de ejecución). El valor por defecto es NULL, lo que significa ilimitado.

parallel_degree_limit

Especifica un límite en el grado de paralelismo para cualquier operación. El valor por defecto es NULL, lo que significa ilimitado. Utilice el valor 1 para que una operación sea en serie.

concurrency_limit

Define el nivel de simultaneidad y, por lo tanto, el grado de paralelismo (DOP). Puede hacer el DOP 1.

session_pga_limit

Cantidad máxima de PGA no ajustable (en MB) que una sesión de este grupo de consumidores puede asignar antes de terminar. NULL (valor por defecto) indica que no hay límite.

Las operaciones SQL que asignan PGA ajustable (operaciones que pueden optar por utilizar espacio temporal) no están controladas por este límite.

parallel_queue_timeout

Especifica el tiempo (en segundos) que una sentencia paralela puede permanecer en la cola de sentencias paralelas de su grupo de consumidores antes de que se elimine y termine con un error (ORA- 07454).

parallel_queue_timeout_action

Especifica la acción que se debe realizar cuando se elimina una sentencia paralela de la cola debido a parallel_queue_timeout.

Los valores son los siguientes:
  • CANCEL: la sentencia paralela se termina con el error ORA-7454
  • RUN: la sentencia SQL se ejecuta inmediatamente y se puede degradar si los servidores paralelos no están disponibles.

Notas de uso

  • No puede crear directivas de plan en los planes predefinidos por defecto que vienen con Autonomous AI Database, es decir, DWCS_PLAN y OLTP_PLAN.
  • Todos los parámetros, excepto los recursos compartidos, se definen por defecto en NULL.
  • Se devuelve un error si se especifica parallel_queue_timeout, pero no se especifica parallel_queue_timeout_action.

Ejemplos

BEGIN

  -- High-priority OLTP gets 8 CPU/IO shares and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OLTP_HIGH',
    comment               => 'OLTP high priority',
    shares                => 8,
    parallel_degree_limit => 1
  );

  -- Lower-priority OLTP gets 4 CPU/IO shares and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OLTP_LOW',
    comment               => 'OLTP low priority',
    shares                => 2,
    parallel_degree_limit => 1
  );

  -- Lakehouse / batch gets 4 shares and the degree of parallelism is capped to 4.
  -- If a parallel SQL statement waits in the queue for more than 60 seconds, it will be canceled.
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                          => 'OLTP_LH_PLAN',
    consumer_group                => 'LH_BATCH',
    comment                       => 'Lakehouse/reporting workloads',
    shares                        => 4,
    parallel_degree_limit         => 4,     -- cap DOP within this group (adjust as needed)
    parallel_queue_timeout        => 60,
    parallel_queue_timeout_action => 'CANCEL'
  );

  -- Catch-all for anything unmapped; sessions that are not mapped to a consumer group get 1 CPU/IO share and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OTHER_GROUPS',
    comment               => 'Catch-all for unmapped sessions',
    shares                => 1,
    parallel_degree_limit => 1
  );
END;
/

DELETE_CONSUMER_GROUP Procedimiento

Este procedimiento suprime los grupos de consumidores de recursos.

Sintaxis

CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
   consumer_group IN VARCHAR2);

Parámetros

Parámetro Descripción

consumer_group

Nombre del grupo que se suprimirá.

Nota

No puede suprimir grupos de consumidores predefinidos que vienen con la base de datos de IA autónoma, es decir, TPURGENT, TP, HIGH, MEDIUM y LOW.

Ejemplos

CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
   consumer_group ==> <consumer_group_name>);

DELETE_PLAN Procedimiento

Este procedimiento suprime el plan especificado, así como todas las directivas de plan a las que se refiere.

Sintaxis

CS_RESOURCE_MANAGER.DELETE_PLAN ( 
  plan    IN VARCHAR2,
  cascade IN BOOLEAN DEFAULT FALSE); 

Parámetros

Parámetro Descripción

plan

Nombre del plan de recursos que desea suprimir.

Nota

No puede suprimir planes predefinidos que vienen con Autonomous AI Database, es decir, DWCS_PLAN y OLTP_PLAN.
cascade

Indicador que especifica si se debe suprimir el plan especificado y todos sus descendientes (directivas de plan, planes secundarios, grupos de consumidores). Los objetos y las directivas obligatorios no se suprimen. El valor por defecto es false.

Con cascada ON, si DELETE_PLAN detecta algún error, se realiza un rollback de la operación y no se suprime nada.

Ejemplo

CS_RESOURCE_MANAGER.DELETE_PLAN ( 
  plan    ==> <plan_name>);

DELETE_PLAN_DIRECTIVE Procedimiento

Este procedimiento suprime las directivas del plan de recursos.

Sintaxis

CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
   plan              IN VARCHAR2, 
   consumer_group    IN VARCHAR2);

Parámetros

Parámetro Descripción

plan

Nombre del plan de recursos.

Nota

No puede suprimir directivas de plan en los planes predefinidos por defecto que vienen con Autonomous AI Database, es decir, DWCS_PLAN y OLTP_PLAN.
consumer_group Nombre del grupo de consumidores.

Ejemplo

CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
   plan            => <plan_name>, 
   consumer_group  => <consumer_group_name>);

Función LIST_CURRENT_RULES

Esta función devuelve la configuración actual del plan por defecto.

Nota

LIST_CURRENT_RULES no se puede utilizar para ver la configuración de los planes personalizados. Si utiliza planes personalizados, puede utilizar las vistas de DBRM para ver la configuración.

Sintaxis

CS_RESOURCE_MANAGER.LIST_CURRENT_RULES
   RETURN TABLE;

Ejemplo

SELECT * FROM CS_RESOURCE_MANAGER.LIST_CURRENT_RULES();

CONSUMER_GROUP ELAPSED_TIME_LIMIT IO_MEGABYTES_LIMIT SHARES CONCURRENCY_LIMIT DEGREE_OF_PARALLELISM 
-------------- ------------------ ------------------ ------ ----------------- --------------------- 
HIGH                                                      4                 3                     3 
MEDIUM                                                    2                 2                     9 
LOW                                                       1               900                     1 

Función LIST_DEFAULT_RULES

Esta función devuelve los valores por defecto para todos los grupos de consumidores.

Sintaxis

CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES
  RETURN TABLE;

Nota de uso

  • Por defecto, el valor de la política de grado en paralelo es MANUAL para el grupo de consumidores TPURGENT. La función CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES no muestra ningún valor para el valor por defecto de DEGREE_OF_PARALLELISM para el grupo de consumidores TPURGENT.

Ejemplo

SELECT * FROM CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES();
CONSUMER_GROUP ELAPSED_TIME_LIMIT IO_MEGABYTES_LIMIT SHARES CONCURRENCY_LIMIT DEGREE_OF_PARALLELISM 
-------------- ------------------ ------------------ ------ ----------------- --------------------- 
HIGH                            0                  0      4                 3                     1 
MEDIUM                          0                  0      2                 1                     1 
LOW                             0                  0      1               300                     1 
TP                              0                  0      8               300                     1 
TPURGENT                        0                  0     12               300                       

REVERT_TO_DEFAULT_VALUES Procedimiento

Este procedimiento revierte las propiedades predeterminadas del plan del gestor de recursos a los valores predeterminados.

Nota

No puede utilizar este procedimiento con planes personalizados y solo se puede utilizar para revertir los cambios a los planes del gestor de recursos por defecto que vienen con Autonomous AI Database, es decir, DWCS_PLAN y OLTP_PLAN.

Sintaxis

CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
   consumer_group         IN VARCHAR2,
   shares                 IN BOOLEAN   DEFAULT FALSE,
   concurrency_limit      IN BOOLEAN   DEFAULT FALSE);

Parámetros

Parámetro Descripción

consumer_group

Especifica el grupo de consumidores que se debe revertir.

Los valores válidos son: HIGH, MEDIUM, LOW, TP o TPURGENT.

shares

Cuando el valor es TRUE, revierta los recursos compartidos del servicio al valor predeterminado.

concurrency_limit

Cuando el valor es TRUE, revierta el valor concurrency_limit del servicio al valor por defecto. Al revertir concurrency_limit, tanto los valores concurrency_limit como los degree_of_parallelism se definen en sus valores por defecto.

Ejemplos

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
      consumer_group => 'MEDIUM', 
      concurrency_limit => TRUE);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
      consumer_group => 'HIGH', 
      shares => TRUE);
END;
/

SET_CONSUMER_GROUP_MAPPING Procedimiento

Este procedimiento agrega, suprime o modifica entradas que asignan sesiones a grupos de consumidores en función de los atributos de conexión y tiempo de ejecución de la sesión.

Sintaxis

CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
   attribute        IN VARCHAR2, 
   value            IN VARCHAR2, 
   consumer_group   IN VARCHAR2 DEFAULT NULL);

Parámetros

Parámetro Descripción

attribute

Atributo de asignación para agregar o modificar. Puede ser uno de los constantes que se muestran.

value

Valor de atributo que debe coincidir. Esto incluye tanto la asignación absoluta como las expresiones regulares.

consumer_group

Nombre del grupo de consumidores asignado o NULL para suprimir una asignación.

Notas de uso

  • Si no existe ninguna asignación para el atributo y el valor indicados, se creará una asignación para el grupo de consumidores indicado. Si ya existe una asignación para el atributo y el valor indicados, el grupo de consumidores asignado se actualizará al proporcionado. Si el argumento consumer_group es NULL, se suprimirá cualquier asignación del atributo y valor proporcionados.
  • El subprograma soporta expresiones regulares simples para el parámetro value. Implementa la misma semántica que el operador SQL 'LIKE'. En concreto, utiliza '%' como comodín de varios caracteres y '_' como comodín de un solo carácter. El carácter '\' se puede utilizar para escapar de los comodines. Tenga en cuenta que los comodines solo se pueden utilizar si el atributo es uno de los siguientes:
    • CLIENT_OS_USER
    • CLIENT_PROGRAM
    • CLIENT_MACHINE
    • MODULE_NAME
    • MODULE_NAME_ACTION
    • SERVICE_MODULE
    • SERVICE_MODULE_ACTION
  • Las comparaciones de asignación de grupos de consumidores para CS_RESOURCE_MANAGER.CLIENT_PROGRAM se realizan mediante la segmentación del signo @ y los siguientes caracteres de V$SESSION.PROGRAM antes de compararlo con el valor CLIENT_PROGRAM proporcionado.
  • Puede utilizar atributos como el nombre de usuario o el nombre de la aplicación para determinar cómo se colocan las sesiones en un grupo de consumidores, como se muestra en el ejemplo anterior.

Ejemplos

BEGIN
  -- Map schema APP_USER to OLTP_HIGH
  CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
    attribute  => 'ORACLE_USER',
    value      => 'APP_USER',
    consumer_group => 'OLTP_HIGH');

  CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
    attribute  => 'ORACLE_USER',
    value      => 'LH_USER',
    consumer_group => 'LH_BATCH');
END;
/

SET_CONSUMER_GROUP_MAPPING_PRI Procedimiento

Se pueden utilizar varios atributos de una sesión para asignar la sesión a un grupo de consumidores. Este procedimiento prioriza las asignaciones de atributos.

Sintaxis

CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING_PRI(
   explicit               IN NUMBER, 
   oracle_user            IN NUMBER, 
   service_name           IN NUMBER,  
   client_program         IN NUMBER, 
   module_name            IN NUMBER, 
   module_name_action     IN NUMBER,
   client_id              IN NUMBER DEFAULT 11);

Parámetros

Parámetro Descripción

explicit

Prioridad de la asignación explícita.

oracle_user

Prioridad de la asignación de nombre de usuario de Oracle.

service_name

Prioridad de la asignación de nombre de servicio de cliente.

client_program

Prioridad de la asignación de programa de cliente.

module_name

Prioridad de la asignación de nombres del módulo de aplicación.

module_name_action

Prioridad del nombre del módulo de la aplicación y la asignación de acciones.

client_id

Identificador de cliente.

Notas de uso

  • Este procedimiento requiere que incluya el pseudoatributo explícito como argumento. Se debe configurar en 1. Indica que los conmutadores explícitos de grupos de consumidores tienen la prioridad más alta. El cambio del grupo de consumidores mediante DBMS_SESSION.SWITCH_CURRENT_CONSUMER_GROUP tendrá prioridad sobre las asignaciones de grupos de consumidores.
  • Cada valor de prioridad debe ser un entero único de 1 a 11. Juntos, establecen un orden donde 1 es la prioridad más alta y 11 es la más baja.
  • Puede utilizar atributos como el nombre de usuario o el nombre de la aplicación para determinar cómo se colocan las sesiones en un grupo de consumidores. Consulte el Paso 4: Creación de asignaciones de grupos de consumidores para ver un ejemplo.

SUBMIT_PENDING_AREA Procedimiento

Este procedimiento envía los cambios pendientes para el gestor de recursos. Borra el área pendiente después de validar y confirmar los cambios (si son válidos).

Nota

Una llamada a SUBMIT_PENDING_AREA puede fallar incluso si VALIDATE_PENDING_AREA se realiza correctamente. Esto puede ocurrir si una instancia carga un plan que se está suprimiendo después de la llamada a VALIDATE_PENDING_AREA, pero antes de la llamada a SUBMIT_PENDING_AREA.

Sintaxis

CS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA;

UPDATE_PLAN_DIRECTIVE Procedimiento

Utilice este procedimiento para actualizar los planes predefinidos por defecto que vienen con Autonomous AI Database, es decir, DWCS_PLAN y OLTP_PLAN para un grupo de consumidores especificado.

Nota

No puede utilizar este procedimiento para actualizar la configuración de los planes personalizados. Para actualizar atributos de plan definidos por el usuario personalizados, utilice el procedimiento UPDATE_PLAN_DIRECTIVE_ADV.

Sintaxis

CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
   consumer_group         IN VARCHAR2,
   io_megabytes_limit     IN NUMBER   DEFAULT NULL,
   elapsed_time_limit     IN NUMBER   DEFAULT NULL,
   shares                 IN NUMBER   DEFAULT NULL,
   concurrency_limit      IN NUMBER   DEFAULT NULL);

Parámetros

Parámetro Descripción

consumer_group

Especifica el grupo de consumidores que se actualizará.

Los valores válidos son: HIGH, MEDIUM, LOW, TP o TPURGENT.

io_megabytes_limit

Especifica el máximo de megabytes de E/S que puede emitir una operación SQL.

Especifique un valor NULL para borrar el límite.

elapsed_time_limit

Especifica el tiempo máximo en segundos que se puede ejecutar una operación SQL.

Especifique un valor NULL para borrar el límite.

shares

Especifica el valor de los recursos compartidos. Un mayor número de recursos compartidos, en relación con otros grupos de consumidores, aumenta la prioridad de E/S y CPU del grupo de consumidores.

concurrency_limit

Especifica el número máximo de sentencias SQL simultáneas que se pueden ejecutar.

Este parámetro solo es válido con el grupo de consumidores MEDIUM.

Notas de uso

  • Cuando una sentencia SQL en el servicio especificado ejecuta más que el límite de tiempo de ejecución especificado (elapsed_time_limit) o realiza más E/S que la cantidad especificada (io_megabytes_limit), la sentencia SQL se terminará.

  • Cuando se especifica el parámetro concurrency_limit, el único valor válido para consumer_group es MEDIUM.

Ejemplos

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'HIGH', 
      shares => 8);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'MEDIUM', 
      shares => 2);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'LOW', 
      shares => 1);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'HIGH', 
      io_megabytes_limit => null, 
      elapsed_time_limit => null);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
     consumer_group => 'MEDIUM', 
     concurrency_limit => 2);
END;
/

UPDATE_PLAN_DIRECTIVE_ADV Procedimiento

Utilice este procedimiento para actualizar el plan de gestor de recursos definido por el usuario para un grupo de consumidores especificado.

Nota

No puede utilizar este procedimiento para actualizar los planes predefinidos por defecto que vienen con Autonomous AI Database, es decir, DWCS_PLAN y OLTP_PLAN. Para actualizar un plan de recursos predeterminado predefinido, utilice el procedimiento UPDATE_PLAN_DIRECTIVE.

Sintaxis

CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE_ADV (
   plan                          IN VARCHAR2 DEFAULT NULL, 
   consumer_group                IN VARCHAR2, 
   comment                       IN VARCHAR2 DEFAULT NULL, 
   shares                        IN NUMBER   DEFAULT NULL,
   utilization_limit             IN NUMBER   DEFAULT NULL,
   switch_action                 IN VARCHAR2 DEFAULT NULL,
   cpu_time_limit                IN NUMBER   DEFAULT NULL,
   io_megabytes_limit            IN NUMBER   DEFAULT NULL,
   io_reqs_limit                 IN NUMBER   DEFAULT NULL,
   io_logical_limit              IN NUMBER   DEFAULT NULL,
   elapsed_time_limit            IN NUMBER   DEFAULT NULL,
   max_idle_time                 IN NUMBER   DEFAULT NULL,
   max_idle_blocker_time         IN NUMBER   DEFAULT NULL,    
   active_session_limit          IN NUMBER   DEFAULT NULL,
   active_session_timeout        IN NUMBER   DEFAULT NULL,
   parallel_degree_limit         IN NUMBER   DEFAULT NULL,
   concurrency_limit             IN NUMBER   DEFAULT NULL,
   session_pga_limit             IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout        IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout_action IN NUMBER   DEFAULT NULL);

Parámetros

Parámetro Descripción

plan

Nombre del plan de recursos.

consumer_group

Nombre del grupo de consumidores.

comment

Comentario para la directiva del plan.

shares

Porcentaje de asignación de recursos para el grupo de consumidores. Los recursos compartidos determinan la cantidad de recursos de CPU y E/S que obtiene un grupo de consumidores en relación con otros grupos de consumidores. Por ejemplo, un grupo de consumidores con una cuota de 2 obtendrá el doble de recursos de CPU y E/S que un grupo de consumidores con una cuota de 1.

Si no especifica acciones para un grupo de consumidores en su plan, el recurso compartido de ese grupo de consumidores se definirá en 1.

utilization_limit

Límites de recursos que determinan el máximo de recursos de CPU y E/S que puede obtener un grupo de consumidores.

switch_action

Medidas que deben adoptarse al alcanzar cualquiera de los límites especificados en las directivas. Los valores válidos son cancel_sql, kill_session o un nombre de grupo de consumidores al que cambiar.

cpu_time_limit

Tiempo en la CPU (en segundos) que se puede ejecutar una sesión antes de realizar una acción. El valor predeterminado es NULL, lo que significa ilimitado.

io_megabytes_limit

Cantidad de E/S (en MB) que una sesión puede emitir antes de que se realice una acción. El valor por defecto es NULL, lo que significa ilimitado.

io_reqs_limit

Número de solicitudes de E/S que una sesión puede emitir antes de que se realice una acción. El valor por defecto es NULL, lo que significa ilimitado.

io_logical_limit

Número de E/S lógicas que dispararán la acción especificada por switch_action.

elapsed_time_limit

Tiempo transcurrido (en segundos) que disparará la acción especificada por switch_action.

max_idle_time

Número de segundos que una sesión puede estar inactiva antes de que finalice la sesión. El valor por defecto es NULL, lo que significa ilimitado.

max_idle_blocker_time

Cantidad máxima de tiempo en segundos que una sesión puede estar inactiva antes de que finalice la sesión, si la sesión mantiene un bloqueo o un recurso que necesitan otras sesiones.

active_session_limit

Número máximo de sesiones que pueden tener simultáneamente una llamada activa.

active_session_timeout

Tiempo especificado (en segundos) tras el cual se agota el tiempo de espera de una llamada en la cola de sesiones inactiva (en espera de ejecución). El valor por defecto es NULL, lo que significa ilimitado.

parallel_degree_limit

Especifica un límite en el grado de paralelismo para cualquier operación. El valor por defecto es NULL, lo que significa ilimitado. Utilice el valor 1 para que una operación sea en serie.

concurrency_limit

Define el nivel de simultaneidad y, por lo tanto, el grado de paralelismo (DOP). Puede hacer el DOP 1.

session_pga_limit

Cantidad máxima de PGA no ajustable (en MB) que una sesión de este grupo de consumidores puede asignar antes de terminar. NULL (valor por defecto) indica que no hay límite.

Las operaciones SQL que asignan PGA ajustable (operaciones que pueden optar por utilizar espacio temporal) no están controladas por este límite.

parallel_queue_timeout

Especifica el tiempo (en segundos) que una sentencia paralela puede permanecer en la cola de sentencias paralelas de su grupo de consumidores antes de que se elimine y termine con un error (ORA- 07454).

parallel_queue_timeout_action

Especifica la acción que se debe realizar cuando se elimina una sentencia paralela de la cola debido a parallel_queue_timeout.

Los valores son los siguientes:
  • CANCEL: la sentencia paralela se termina con el error ORA-7454
  • RUN: la sentencia SQL se ejecuta inmediatamente y se puede degradar si los servidores paralelos no están disponibles.

Notas de uso

  • Todos los parámetros, excepto los recursos compartidos, se definen por defecto en NULL.
  • Se devuelve un error si se especifica parallel_queue_timeout_action, pero no se especifica parallel_queue_timeout.

VALIDATE_PENDING_AREA Procedimiento

Este procedimiento valida los cambios pendientes para el gestor de recursos.

Sintaxis


CS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;