Salto na fila de consultas do WLM - Amazon Redshift

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.