Pacote CS_RESOURCE_MANAGER
O pacote CS_RESOURCE_MANAGER fornece uma interface para listar e atualizar parâmetros do grupo de consumidores e para reverter parâmetros para valores padrão.
- CLEAR_PENDING_AREA Procedimento
Esse procedimento limpa as alterações pendentes para o gerenciador de recursos. - CREATE_CONSUMER_GROUP Procedimento
Este procedimento define grupos de consumidores de recursos. - CREATE_PENDING_AREA Procedimento
Esse procedimento cria uma área pendente para fazer alterações nos objetos do gerenciador de recursos. - CREATE_PLAN Procedimento
Esse procedimento cria entradas que definem planos de recursos. - CREATE_PLAN_DIRECTIVE Procedimento
Este procedimento cria diretivas do plano de recursos. - DELETE_CONSUMER_GROUP Procedimento
Este procedimento exclui grupos de consumidores de recursos. - DELETE_PLAN Procedimento
Esse procedimento exclui o plano especificado, bem como todas as diretivas do plano às quais ele se refere. - DELETE_PLAN_DIRECTIVE Procedimento
Este procedimento exclui diretivas de plano de recursos. - Função LIST_CURRENT_RULES
Esta função retorna as configurações atuais do plano padrão. - LIST_DEFAULT_RULES Função
Esta função retorna os valores padrão para todos os grupos de consumidores. - REVERT_TO_DEFAULT_VALUES Procedimento
Este procedimento reverte as propriedades do plano do gerenciador de recursos padrão para valores padrão. - SET_CONSUMER_GROUP_MAPPING Procedimento
Esse procedimento adiciona, exclui ou modifica entradas que mapeiam sessões para grupos de consumidores, com base nos atributos de log-in e runtime da sessão. - SET_CONSUMER_GROUP_MAPPING_PRI Procedimento
Vários atributos de uma sessão podem ser usados para mapear a sessão para um grupo de consumidores. Este procedimento prioriza os mapeamentos de atributo. - SUBMIT_PENDING_AREA Procedimento
Esse procedimento envia alterações pendentes para o gerenciador de recursos. Ele limpa a área pendente depois de validar e confirmar as alterações (se válidas). - Procedimento UPDATE_PLAN_DIRECTIVE
Use este procedimento para atualizar planos predefinidos padrão que vêm com o Autonomous AI Database, ou seja,DWCS_PLANeOLTP_PLANpara um grupo de consumidores especificado. - UPDATE_PLAN_DIRECTIVE_ADV Procedimento
Use este procedimento para atualizar o plano do gerenciador de recursos definido pelo usuário para um grupo de consumidores especificado. - VALIDATE_PENDING_AREA Procedimento
Este procedimento valida as alterações pendentes para o gerenciador de recursos.
Tópico principal: Referência de Pacote Fornecida pelo Autonomous AI Database
CLEAR_PENDING_AREA Procedimento
Este procedimento limpa as alterações pendentes para o gerenciador de recursos.
Sintaxe
CS_RESOURCE_MANAGER.CLEAR_PENDING_AREA;
Tópico principal: Pacote CS_RESOURCE_MANAGER
CREATE_CONSUMER_GROUP Procedimento
Este procedimento define grupos de consumidores de recursos.
Sintaxe
CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
consumer_group IN VARCHAR2,
comment IN VARCHAR2 DEFAULT NULL);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Nome do grupo de consumidores |
|
|
Comentário do usuário |
Observações de Uso
Você pode determinar como as sessões são colocadas em grupos de consumidores por meio de:
-
Designação da String de Conexão: Especifique o
CONSUMER_GROUPna string de conexão do banco de dados, conforme mostrado abaixo. Esta abordagem tem precedência sobre o mapeamento e substituirá todos os mapeamentos definidos.(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))) -
Regras de Mapeamento: Use os subprogramas
set_consumer_group_mappingeset_consumer_group_mapping_pripara designar sessões ou aplicativos a grupos de consumidores com base em atributos como nome de usuário ou nome de aplicativo.
Exemplos
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;
/Tópico principal: Pacote CS_RESOURCE_MANAGER
CREATE_PENDING_AREA Procedimento
Este procedimento cria uma área pendente para fazer alterações nos objetos do gerenciador de recursos.
A área pendente pode ser considerada como uma área risco para alterações de esquema do plano. O administrador cria essa área pendente, faz alterações conforme necessário, possivelmente valida essas alterações e, somente quando o envio for concluído, essas alterações se tornarão ativas.
Sintaxe
CS_RESOURCE_MANAGER.CREATE_PENDING_AREA;Observações de Uso
Você pode, a qualquer momento enquanto a área pendente estiver ativa, exibir o esquema do plano atual com suas alterações selecionando entre as exibições de usuário apropriadas. Consulte Exibindo a Configuração e o Status do Database Resource Manager para obter mais detalhes.
A qualquer momento, você pode limpar a área pendente se quiser interromper as alterações atuais. Você também pode chamar o procedimento VALIDATE para confirmar se as alterações feitas são válidas. Não é necessário executar as alterações em uma determinada ordem para manter um grupo consistente de entradas. Estas verificações são também implicitamente efectuadas quando a área pendente é submetida.
A Oracle permite grupos de consumidores "órfãos" (em outras palavras, grupos de consumidores que não têm diretivas de plano que se refiram a eles). Isso antecipa que um administrador pode querer criar um grupo de consumidores que não esteja sendo usado no momento, mas que será usado no futuro.
- Nenhum esquema de plano pode conter loops.
- Todos os planos e grupos de consumidores referidos pelas directivas do plano devem existir.
- Todos os planos devem ter diretivas de plano que se refiram a planos ou grupos de consumidores.
- Todas as porcentagens em um determinado nível não devem ser adicionadas a mais de 100 para o método de alocação de recursos de ênfase.
- Nenhum plano pode ser excluído que esteja sendo usado no momento como um plano principal por uma instância ativa.
- Não pode haver mais de 28 diretivas de plano vindas de um determinado plano (ou seja, nenhum plano pode ter mais de 28 filhos).
- Não pode haver mais de 28 grupos de consumidores em nenhum esquema de plano ativo.
- Planos e grupos de consumidores usam o mesmo namespace; portanto, nenhum plano pode ter o mesmo nome que qualquer grupo de consumidores.
- Deve haver uma diretiva de plano para
OTHER_GROUPSem algum lugar em qualquer esquema de plano ativo. Isso garante que uma sessão não coberta pelo plano ativo no momento seja alocada para recursos conforme especificado pela diretivaOTHER_GROUPS.
Se alguma das regras anteriores for quebrada quando verificada pelos procedimentos VALIDATE ou SUBMIT, uma mensagem de erro informativa será retornada. Em seguida, você pode fazer alterações para corrigir um ou mais problemas e reemitir os procedimentos de validação ou envio.
Tópico principal: Pacote CS_RESOURCE_MANAGER
CREATE_PLAN Procedimento
Este procedimento cria entradas que definem planos de recursos.
Sintaxe
CS_RESOURCE_MANAGER.CREATE_PLAN (
plan IN VARCHAR2,
comment IN VARCHAR2 DEFAULT NULL);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Nome do plano de recursos |
|
|
Comentário do usuário |
Exemplo
BEGIN
CS_RESOURCE_MANAGER.CREATE_PLAN(
plan => 'OLTP_LH_PLAN',
comment => 'Split resources between OLTP and Lakehouse workload types');
END;
/Tópico principal: Pacote CS_RESOURCE_MANAGER
CREATE_PLAN_DIRECTIVE Procedimento
Este procedimento cria diretivas do plano de recursos.
Sintaxe
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 | Descrição |
|---|---|
|
|
Nome do plano de recursos |
|
|
Nome do grupo de consumidores |
|
|
Comentário sobre a diretiva do plano |
|
|
Compartilhamento de alocação de recursos para o grupo de consumidores. Os compartilhamentos determinam a quantidade de recursos de CPU e E/S que um grupo de consumidores recebe em relação a outros grupos de consumidores. Por exemplo, um grupo de consumidores com um compartilhamento de 2 obterá o dobro dos recursos de CPU e E/S do que um grupo de consumidores com um compartilhamento de 1. Se você não especificar compartilhamentos para um grupo de consumidores em seu plano, o compartilhamento desse grupo de consumidores será definido como 1. |
|
|
Limites de recursos que determinam o máximo de recursos de CPU e E/S que um grupo de consumidores pode obter. |
|
|
Medidas a tomar para atingir qualquer dos limites especificados nas directivas. Os valores válidos são |
|
|
Tempo na CPU (em segundos) que uma sessão pode executar antes de uma ação ser executada. O padrão é |
|
|
Quantidade de E/S (em MB) que uma sessão pode emitir antes de uma ação ser executada. O padrão é |
io_reqs_limit |
Número de solicitações de E/S que uma sessão pode emitir antes de uma ação ser executada. O padrão é |
io_logical_limit |
Número de E/Ss lógicas que acionarão a ação especificada por |
elapsed_time_limit |
Tempo decorrido (em segundos) que acionará a ação especificada por |
max_idle_time |
Número de segundos que uma sessão pode ficar ociosa antes de ser encerrada. O padrão é |
max_idle_blocker_time |
Tempo máximo, em segundos, que uma sessão pode ficar ociosa antes de ser encerrada, se a sessão estiver mantendo um bloqueio ou recurso necessário para outras sessões. |
active_session_limit |
Número máximo de sessões que podem ter simultaneamente uma chamada ativa. |
active_session_timeout |
Tempo especificado (em segundos) após o qual uma chamada na fila de sessão inativa (aguardando a execução) expirará. O padrão é |
parallel_degree_limit |
Especifica um limite no grau de paralelismo para qualquer operação. O padrão é |
concurrency_limit |
Define o nível de simultaneidade e, portanto, o Grau de Paralelismo (DOP). Pode fazer o DOP 1. |
session_pga_limit |
Quantidade máxima de PGA não ajustável (em MB) que uma sessão deste grupo de consumidores pode alocar antes de ser encerrada. As operações SQL que alocam PGA ajustável (operações que podem optar por usar espaço temporário) não são controladas por esse limite. |
parallel_queue_timeout |
Especifica o tempo (em segundos) que uma instrução paralela pode permanecer na fila de instruções paralelas do grupo de consumidores antes de ser removida e encerrada com um erro (ORA- 07454). |
parallel_queue_timeout_action |
Especifica a ação a ser tomada quando uma instrução paralela é removida da fila devido a Os valores são:
|
Observações de Uso
- Não é possível criar diretivas de plano nos planos predefinidos padrão que vêm com o Autonomous AI Database, ou seja,
DWCS_PLANeOLTP_PLAN. - Todos os parâmetros, exceto compartilhamentos, assumem como padrão
NULL. - Um erro será gerado se
parallel_queue_timeoutfor especificado, masparallel_queue_timeout_actionnão for especificado.
Exemplos
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;
/Tópico principal: Pacote CS_RESOURCE_MANAGER
DELETE_CONSUMER_GROUP Procedimento
Este procedimento exclui grupos de consumidores de recursos.
Sintaxe
CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
consumer_group IN VARCHAR2);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Nome do grupo do consumidor a ser excluído. Observação
Você não pode excluir grupos de consumidores predefinidos que vêm com o Autonomous Database, ou seja, TPURGENT, TP, HIGH, MEDIUM e LOW. |
Exemplos
CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
consumer_group ==> <consumer_group_name>);Tópico principal: Pacote CS_RESOURCE_MANAGER
DELETE_PLAN Procedimento
Este procedimento exclui o plano especificado, bem como todas as diretivas do plano a que se refere.
Sintaxe
CS_RESOURCE_MANAGER.DELETE_PLAN (
plan IN VARCHAR2,
cascade IN BOOLEAN DEFAULT FALSE); Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Nome do plano de recursos a ser excluído. Observação
Você não pode excluir planos predefinidos que vêm com o Autonomous Database, ou seja, DWCS_PLAN e OLTP_PLAN.
|
cascade |
Indicador para indicar se deseja excluir o plano especificado e todos os seus descendentes (diretivas do plano, subplanos, grupos de consumidores). Objetos e diretivas obrigatórios não foram excluídos. O valor padrão é DELETE_PLAN encontrar algum erro, ele fará rollback da operação e nada será excluído.
|
Exemplo
CS_RESOURCE_MANAGER.DELETE_PLAN (
plan ==> <plan_name>);Tópico principal: Pacote CS_RESOURCE_MANAGER
DELETE_PLAN_DIRECTIVE Procedimento
Este procedimento exclui diretivas do plano de recursos.
Sintaxe
CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
plan IN VARCHAR2,
consumer_group IN VARCHAR2);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Nome do plano de recursos. Observação
Você não pode excluir diretivas de plano nos planos predefinidos padrão que vêm com o Autonomous Database, ou seja, DWCS_PLAN e OLTP_PLAN.
|
consumer_group |
Nome do grupo de consumidores. |
Exemplo
CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
plan => <plan_name>,
consumer_group => <consumer_group_name>);
Tópico principal: Pacote CS_RESOURCE_MANAGER
Função LIST_CURRENT_RULES
Esta função retorna as configurações atuais do plano padrão.
LIST_CURRENT_RULES não pode ser usado para exibir as configurações de planos personalizados. Se você estiver usando planos personalizados, poderá usar as Views do DBRM para exibir suas definições.
Sintaxe
CS_RESOURCE_MANAGER.LIST_CURRENT_RULES
RETURN TABLE;
Exemplo
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
Tópico principal: Pacote CS_RESOURCE_MANAGER
Função LIST_DEFAULT_RULES
Esta função retorna os valores padrão para todos os grupos de consumidores.
Sintaxe
CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES
RETURN TABLE;Observação do Uso
-
Por padrão, o valor da política de grau paralelo é
MANUALpara o grupo de consumidoresTPURGENT. A funçãoCS_RESOURCE_MANAGER.LIST_DEFAULT_RULESnão mostra nenhum valor para o valor padrão doDEGREE_OF_PARALLELISMpara o grupo de consumidoresTPURGENT.
Exemplo
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
Tópico principal: Pacote CS_RESOURCE_MANAGER
REVERT_TO_DEFAULT_VALUES Procedimento
Este procedimento reverte as propriedades do plano do gerenciador de recursos padrão para valores padrão.
Você não pode usar este procedimento com planos personalizados e ele só pode ser usado para reverter as alterações nos planos padrão do gerenciador de recursos que vêm com o Autonomous Database, ou seja,
DWCS_PLAN e OLTP_PLAN.
Sintaxe
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 | Descrição |
|---|---|
|
|
Especifica o grupo de consumidores a ser revertido. Os valores válidos são: |
shares |
Quando o valor for |
concurrency_limit |
Quando o valor for |
Exemplos
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;
/
Tópico principal: Pacote CS_RESOURCE_MANAGER
SET_CONSUMER_GROUP_MAPPING Procedimento
Este procedimento adiciona, exclui ou modifica entradas que mapeiam sessões para grupos de consumidores, com base nos atributos de log-in e runtime da sessão.
Sintaxe
CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
attribute IN VARCHAR2,
value IN VARCHAR2,
consumer_group IN VARCHAR2 DEFAULT NULL);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Atributo de mapeamento a ser adicionado ou modificado. Pode ser uma das Constantes listadas. |
|
|
Valor do atributo a ser correspondente. Isso inclui mapeamento absoluto e expressões regulares. |
|
|
Nome do grupo de consumidores mapeado ou |
Observações de Uso
- Se não existir nenhum mapeamento para o atributo e o valor fornecidos, será criado um mapeamento para o grupo de consumidores fornecido. Se já existir um mapeamento para o atributo e o valor fornecidos, o grupo de consumidores mapeado será atualizado para o determinado. Se o argumento consumer_group for
NULL, qualquer mapeamento do atributo e do valor fornecidos será excluído. - O subprograma suporta expressões regex simples para o parâmetro value. Ela implementa a mesma semântica que o operador SQL 'LIKE'. Especificamente, ele usa '%' como um curinga com vários caracteres e '_' como um curinga com um único caractere. O caractere '\' pode ser usado para caracteres de escape. Observe que os curingas só poderão ser usados se o atributo for um dos seguintes:
CLIENT_OS_USERCLIENT_PROGRAMCLIENT_MACHINEMODULE_NAMEMODULE_NAME_ACTIONSERVICE_MODULESERVICE_MODULE_ACTION
- As comparações de mapeamento do grupo de consumidores para
CS_RESOURCE_MANAGER.CLIENT_PROGRAMsão executadas removendo o sinal@e os seguintes caracteres deV$SESSION.PROGRAMantes de compará-lo com o valorCLIENT_PROGRAMfornecido. - Você pode usar atributos como nome de usuário ou nome do aplicativo para determinar como as sessões são colocadas em um grupo de consumidores, conforme mostrado no exemplo acima.
Exemplos
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;
/Tópico principal: Pacote CS_RESOURCE_MANAGER
SET_CONSUMER_GROUP_MAPPING_PRI Procedimento
Vários atributos de uma sessão podem ser usados para mapear a sessão para um grupo de consumidores. Este procedimento prioriza os mapeamentos de atributo.
Sintaxe
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 | Descrição |
|---|---|
|
|
Prioridade do mapeamento explícito. |
|
|
Prioridade do mapeamento de nome de usuário Oracle. |
|
|
Prioridade do mapeamento do nome do serviço do cliente. |
|
|
Prioridade do mapeamento do programa do cliente. |
|
|
Prioridade do mapeamento do nome do módulo do aplicativo. |
|
|
Prioridade do nome do módulo de aplicativo e mapeamento de ação. |
|
|
Identificador do cliente. |
Observações de Uso
- Este procedimento requer que você inclua o pseudo-atributo explícito como um argumento. Deve ser definido como 1. Isso indica que as chaves de grupo de consumidores explícitas têm a prioridade mais alta. A alternância do grupo de consumidores usando
DBMS_SESSION.SWITCH_CURRENT_CONSUMER_GROUPterá precedência sobre os mapeamentos do grupo de consumidores. - Cada valor de prioridade deve ser um inteiro exclusivo de 1 a 11. Juntos, eles estabelecem uma ordem em que 1 é a prioridade mais alta e 11 é a mais baixa.
- Você pode usar atributos como nome de usuário ou nome do aplicativo para determinar como as sessões são colocadas em um grupo de consumidores. Consulte a Etapa 4: Criar Mapeamentos do Grupo de Consumidores para obter um exemplo.
Tópico principal: Pacote CS_RESOURCE_MANAGER
SUBMIT_PENDING_AREA Procedimento
Este procedimento envia alterações pendentes para o gerenciador de recursos. Ele limpa a área pendente depois de validar e confirmar as alterações (se válidas).
Uma chamada para
SUBMIT_PENDING_AREA poderá falhar mesmo se VALIDATE_PENDING_AREA for bem-sucedido. Isso poderá ocorrer se um plano que está sendo excluído for carregado por uma instância após a chamada para VALIDATE_PENDING_AREA, mas antes da chamada para SUBMIT_PENDING_AREA.
Sintaxe
CS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA;Tópico principal: Pacote CS_RESOURCE_MANAGER
UPDATE_PLAN_DIRECTIVE Procedimento
Use este procedimento para atualizar planos predefinidos padrão que vêm com o Autonomous AI Database, ou seja, DWCS_PLAN e OLTP_PLAN para um grupo de consumidores especificado.
Não é possível usar este procedimento para atualizar as configurações de planos personalizados. Para atualizar um atributo de plano personalizado definido pelo usuário, use o procedimento
UPDATE_PLAN_DIRECTIVE_ADV.
Sintaxe
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 | Descrição |
|---|---|
|
|
Especifica o grupo de consumidores a ser atualizado. Os valores válidos são: |
|
|
Especifica o máximo de megabytes de E/S que uma operação SQL pode emitir. Especifique um valor |
|
|
Especifica o tempo máximo em segundos que uma operação SQL pode executar. Especifique um valor |
|
|
Especifica o valor de compartilhamentos. Um número maior de compartilhamentos, em relação a outros grupos de consumidores, aumenta a prioridade de E/S e CPU do grupo de consumidores. |
|
|
Especifica o número máximo de instruções SQL simultâneas que podem ser executadas. Esse parâmetro só é válido com o grupo de consumidores |
Observações de Uso
-
Quando uma instrução SQL no serviço especificado é executada mais do que o limite de runtime especificado (
elapsed_time_limit) ou faz mais E/S do que o valor especificado (io_megabytes_limit), a instrução SQL será encerrada. -
Quando o parâmetro
concurrency_limité especificado, o único valor válido paraconsumer_groupéMEDIUM.
Exemplos
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;
/
Tópico principal: Pacote CS_RESOURCE_MANAGER
UPDATE_PLAN_DIRECTIVE_ADV Procedimento
Use este procedimento para atualizar o plano do gerenciador de recursos definido pelo usuário para um grupo de consumidores especificado.
Não é possível usar este procedimento para atualizar planos predefinidos padrão que vêm com o Autonomous Database, ou seja,
DWCS_PLAN e OLTP_PLAN. Para atualizar um plano de recursos padrão predefinido, use o procedimento UPDATE_PLAN_DIRECTIVE.
Sintaxe
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 | Descrição |
|---|---|
|
|
Nome do plano de recursos. |
|
|
Nome do grupo de consumidores. |
|
|
Comentário sobre a diretiva do plano. |
|
|
Compartilhamento de alocação de recursos para o grupo de consumidores. Os compartilhamentos determinam a quantidade de recursos de CPU e E/S que um grupo de consumidores recebe em relação a outros grupos de consumidores. Por exemplo, um grupo de consumidores com um compartilhamento de 2 obterá o dobro dos recursos de CPU e E/S do que um grupo de consumidores com um compartilhamento de 1. Se você não especificar compartilhamentos para um grupo de consumidores em seu plano, o compartilhamento desse grupo de consumidores será definido como 1. |
|
|
Limites de recursos que determinam o máximo de recursos de CPU e E/S que um grupo de consumidores pode obter. |
|
|
Medidas a tomar para atingir qualquer dos limites especificados nas directivas. Os valores válidos são |
|
|
Tempo na CPU (em segundos) que uma sessão pode executar antes de uma ação ser executada. O padrão é NULL, o que significa ilimitado. |
|
|
Quantidade de E/S (em MB) que uma sessão pode emitir antes de uma ação ser executada. O padrão é |
|
|
Número de solicitações de E/S que uma sessão pode emitir antes de uma ação ser executada. O padrão é |
|
|
Número de E/Ss lógicas que acionarão a ação especificada por |
|
|
Tempo decorrido (em segundos) que acionará a ação especificada por |
|
|
Número de segundos que uma sessão pode ficar ociosa antes de ser encerrada. O padrão é |
|
|
Tempo máximo, em segundos, que uma sessão pode ficar ociosa antes de ser encerrada, se a sessão estiver mantendo um bloqueio ou recurso necessário para outras sessões. |
|
|
Número máximo de sessões que podem ter simultaneamente uma chamada ativa. |
|
|
Tempo especificado (em segundos) após o qual uma chamada na fila de sessão inativa (aguardando a execução) expirará. O padrão é |
|
|
Especifica um limite no grau de paralelismo para qualquer operação. O padrão é |
|
|
Define o nível de simultaneidade e, portanto, o Grau de Paralelismo (DOP). Pode fazer o DOP 1. |
|
|
Quantidade máxima de PGA não ajustável (em MB) que uma sessão deste grupo de consumidores pode alocar antes de ser encerrada. As operações SQL que alocam PGA ajustável (operações que podem optar por usar espaço temporário) não são controladas por esse limite. |
|
|
Especifica o tempo (em segundos) que uma instrução paralela pode permanecer na fila de instruções paralelas do grupo de consumidores antes de ser removida e encerrada com um erro (ORA- 07454). |
|
|
Especifica a ação a ser tomada quando uma instrução paralela é removida da fila devido a Os valores são:
|
Observações de Uso
- Todos os parâmetros, exceto compartilhamentos, assumem como padrão
NULL. - Um erro será gerado se
parallel_queue_timeout_actionfor especificado, masparallel_queue_timeoutnão for especificado.
Tópico principal: Pacote CS_RESOURCE_MANAGER
VALIDATE_PENDING_AREA Procedimento
Este procedimento valida alterações pendentes para o gerenciador de recursos.
Sintaxe
CS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;
Tópico principal: Pacote CS_RESOURCE_MANAGER