Salto na fila de consultas do WLM
Uma consulta pode ser saltada devido a um tempo limite do WLM ou uma ação de salto da regra de monitoramento de consultas (QMR). Só é possível saltar consultas em uma configuração manual do WLM.
Quando uma consulta é saltada, o WLM tenta rotear a consulta para a próxima fila correspondente com base nas regras de atribuição de filas do WLM. Se a consulta não corresponder a qualquer outra definição de fila, ela será cancelada. Ela não é atribuída à fila padrão.
Ações de tempo limite do WLM
A tabela a seguir resume o comportamento dos diferentes tipos de consultas com um tempo limite do WLM.
Tipo da consulta | Ação |
---|---|
INSERT, UPDATE e DELETE | Cancelar |
Funções definidas pelo usuário (UDFs) | Cancelar |
UNLOAD | Cancelar |
COPY | Continuar a execução |
Operações de manutenção | Continuar a execução |
Consultas somente leitura em estado returning |
Continuar a execução |
Consultas somente leitura em estado running |
Reatribuir ou reiniciar |
CREATE TABLE AS (CTAS), SELECT INTO | Reatribuir ou reiniciar |
Salto na fila de tempo limite do WLM
O WLM salta os seguintes tipos de consultas quando seus tempos limite são expirados:
-
Consultas somente leitura, como instruções SELECT que estejam em estado
running
no WLM. Para encontrar o estado do WLM de uma consulta, exiba a coluna STATE na tabela do sistema STV_WLM_QUERY_STATE. -
Instruções CREATE TABLE AS (CTAS). O salto de filas do WLM oferece suporte para as instruções CTAS definidas pelo usuário e para as geradas pelo sistema.
-
Instruções SELECT INTO.
As consultas que não estão sujeitas ao tempo limite do WLM continuam a ser executadas na fila original até que sejam concluídas. Os seguintes tipos de consultas não estão sujeitos ao tempo limite do WLM:
-
Instruções COPY
-
Operações de manutenção, como ANALYZE e VACUUM
-
Consultas somente leitura, como instruções SELECT que estejam em estado
returning
no WLM. Para encontrar o estado do WLM de uma consulta, exiba a coluna STATE na tabela do sistema STV_WLM_QUERY_STATE.
Consultas que não estão qualificadas para a operação de salto por tempo limite do WLM são canceladas quando seus tempos limite expiram. Os seguintes tipos de consultas não estão qualificados para a operação de salto por tempo limite do WLM:
-
Instruções INSERT, UPDATE e DELETE
-
Instruções UNLOAD
-
Funções definidas pelo usuário (UDFs)
Consultas reatribuídas e reiniciadas devido ao tempo limite do WLM
Quando uma consulta é saltada e nenhuma fila correspondente é encontrada, a consulta é cancelada.
Quando uma consulta é saltada e uma fila correspondente é encontrada, o WLM tenta reatribuir a consulta à nova fila. Caso não seja possível reatribuir uma consulta, ela é reiniciada em uma fila nova, como descrito a seguir.
Uma consulta somente será reatribuída se todas as afirmações a seguir forem verdadeiras:
-
Uma fila correspondente foi encontrada.
-
A fila nova tem slots livres suficientes para executar a consulta. Uma consulta pode exigir vários slots se o parâmetro wlm_query_slot_count foi definido com um valor maior que 1.
-
A fila nova tem, no mínimo, a mesma quantidade de memória disponível usada pela consulta no momento.
Se a consulta for reatribuída, ela continuará sendo executada na fila nova. Os resultados intermediários são conservados, de forma que o efeito sobre o tempo total de execução é mínimo.
Se a consulta não puder ser reatribuída, ela será cancelada e reiniciada na nova fila. Os resultados intermediários são excluídos. A consulta espera na fila e inicia a execução quando há slots suficientes disponíveis.
Ações de salto do QMR
A tabela a seguir resume o comportamento dos diferentes tipos de consultas com uma ação de salto do QMR.
Tipo da consulta | Ação |
---|---|
COPY | Continuar a execução |
Operações de manutenção | Continuar a execução |
Funções definidas pelo usuário (UDFs) | Continuar a execução |
UNLOAD | Reatribuir ou continuar a execução |
INSERT, UPDATE e DELETE | Reatribuir ou continuar a execução |
Consultas somente leitura em estado returning |
Reatribuir ou continuar a execução |
Consultas somente leitura em estado running |
Reatribuir ou reiniciar |
CREATE TABLE AS (CTAS), SELECT INTO | Reatribuir ou reiniciar |
Para saber se uma consulta que foi saltada pelo QMR foi reatribuída, reiniciada ou cancelada, consulte a STL_WLM_RULE_ACTIONtabela de log do sistema.
Consultas reatribuídas e reiniciadas devido à ação de salto do QMR
Quando uma consulta é saltada e nenhuma fila correspondente é encontrada, a consulta é cancelada.
Quando uma consulta é saltada e uma fila correspondente é encontrada, o WLM tenta reatribuir a consulta à nova fila. Caso não seja possível reatribuir uma consulta, ela será reiniciada na fila nova ou continuará a ser executada na fila original, como descrito a seguir.
Uma consulta somente será reatribuída se todas as afirmações a seguir forem verdadeiras:
-
Uma fila correspondente foi encontrada.
-
A fila nova tem slots livres suficientes para executar a consulta. Uma consulta pode exigir vários slots se o parâmetro wlm_query_slot_count foi definido com um valor maior que 1.
-
A fila nova tem, no mínimo, a mesma quantidade de memória disponível usada pela consulta no momento.
Se a consulta for reatribuída, ela continuará sendo executada na fila nova. Os resultados intermediários são conservados, de forma que o efeito sobre o tempo total de execução é mínimo.
Caso não seja possível reatribuir uma consulta, ela será reiniciada ou continuará a ser executada na fila original. Se a consulta for reiniciada, ela será cancelada e reiniciada na nova fila. Os resultados intermediários são excluídos. A consulta espera na fila e inicia a execução quando há slots suficientes disponíveis.