Salto de cola de consultas de WLM - Amazon Redshift

Salto de cola de consultas de WLM

Una consulta puede saltarse porque se ha agotado el tiempo de espera de WLM o por una acción de salto de una regla de monitoreo de consultas (QMR). Solo puede transferir consultas en una configuración de WLM manual.

Cuando se salta una consulta, WLM intenta direccionarla a la siguiente cola coincidente en función de las reglas de asignación de colas de WLM. Si la consulta no coincide con ninguna otra definición de cola, se cancelará. No se asigna a la cola predeterminada.

Acciones de tiempo de espera de WLM

En la siguiente tabla, se resume el comportamiento de diferentes tipos de consulta con un tiempo de espera de WLM.

Tipo de consulta Acción
INSERT, UPDATE y DELETE Cancelación
Funciones definidas por el usuario (UDF) Cancelación
UNLOAD Cancelación
COPY Siguen ejecutándose
Operaciones de mantenimiento Siguen ejecutándose
Consultas de solo lectura con el estado returning Siguen ejecutándose
Consultas de solo lectura con el estado running Se reasignan o reinicia
CREATE TABLE AS (CTAS), SELECT INTO Se reasignan o reinicia

Salto de cola por un tiempo de espera de WLM

WLM transfiere los siguientes tipos de consultas cuando se agota el tiempo de espera:

  • Consultas de solo lectura, como las instrucciones SELECT, cuando tienen el estado de WLM running. Para encontrar el estado de WLM de una consulta, vea la columna STATE en la tabla de sistema STV_WLM_QUERY_STATE.

  • Instrucciones CREATE TABLE AS (CTAS). El salto de colas de WLM es compatible con instrucciones CTAS definidas por el usuario y generadas por el sistema.

  • Instrucciones SELECT INTO

Las consultas que no están sujetas al tiempo de espera de WLM siguen ejecutándose en la cola original hasta su finalización. Los siguientes tipos de consultas no están sujetos al tiempo de espera de WLM:

  • Instrucciones COPY.

  • Operaciones de mantenimiento, como ANALYZE y VACUUM.

  • Consultas de solo lectura, como instrucciones SELECT, que han alcanzado el estado de WLM returning. Para encontrar el estado de WLM de una consulta, vea la columna STATE en la tabla de sistema STV_WLM_QUERY_STATE.

Las consultas que no pueden transferirse al agotar el tiempo de espera de WLM se cancelan. Los siguientes tipos de consultas no pueden transferirse al agotarse el tiempo de espera de WLM:

  • Instrucciones INSERT, UPDATE y DELETE.

  • Instrucciones UNLOAD.

  • Funciones definidas por el usuario (UDF)

Consultas reasignadas o reiniciadas por un tiempo de espera de WLM.

Cuando se transfiere una consulta y no se encuentra ninguna cola que coincida, la consulta se cancela.

Cuando se transfiere una consulta y se encuentra una cola coincidente, WLM intenta reasignar la consulta a esta nueva cola. Si la consulta no se puede reasignar, se reinicia en la nueva cola, tal y como se describe a continuación.

Una consulta solo puede reasignarse si se dan todas las condiciones siguientes:

  • Se encuentra una cola coincidente.

  • La nueva cola tiene suficientes slots libres para ejecutar la consulta. Una consulta puede necesitar varios slots si el parámetro wlm_query_slot_count se ha establecido en un valor mayor que 1.

  • La nueva consulta tiene al menos tanta memoria disponible como la que utiliza actualmente.

Si la consulta se reasigna, sigue ejecutándose en la nueva cola. Los resultados intermedios se conservan, por lo que el efecto en el tiempo total de ejecución es mínimo.

Si la consulta no se puede reasignar, se cancela y se reinicia en la nueva cola. Los resultados intermedios se eliminan. La consulta espera en la cola y, cuando hay suficientes slots disponibles, comienza a ejecutarse.

Acciones de transferencia de QMR

En la siguiente tabla, se resume el comportamiento de diferentes tipos de consulta con una acción de transferencia de QMR.

Tipo de consulta Acción
COPY Siguen ejecutándose
Operaciones de mantenimiento Siguen ejecutándose
Funciones definidas por el usuario (UDF) Siguen ejecutándose
UNLOAD Se reasignan o siguen ejecutándose
INSERT, UPDATE y DELETE Se reasignan o siguen ejecutándose
Consultas de solo lectura con el estado returning Se reasignan o siguen ejecutándose
Consultas de solo lectura con el estado running Se reasignan o reinicia
CREATE TABLE AS (CTAS), SELECT INTO Se reasignan o reinicia

Para saber si una consulta transferida por QMR se ha reasignado, reiniciado o cancelado, consulte la tabla de registro del sistema STL_WLM_RULE_ACTION.

Consultas reasignadas o reiniciadas por una acción de salto de QMR

Cuando se transfiere una consulta y no se encuentra ninguna cola que coincida, la consulta se cancela.

Cuando se transfiere una consulta y se encuentra una cola coincidente, WLM intenta reasignar la consulta a esta nueva cola. Si una consulta no se puede reasignar, se reinicia en la nueva cola o sigue ejecutándose en la cola original, tal y como se describe a continuación.

Una consulta solo puede reasignarse si se dan todas las condiciones siguientes:

  • Se encuentra una cola coincidente.

  • La nueva cola tiene suficientes slots libres para ejecutar la consulta. Una consulta puede necesitar varios slots si el parámetro wlm_query_slot_count se ha establecido en un valor mayor que 1.

  • La nueva consulta tiene al menos tanta memoria disponible como la que utiliza actualmente.

Si la consulta se reasigna, sigue ejecutándose en la nueva cola. Los resultados intermedios se conservan, por lo que el efecto en el tiempo total de ejecución es mínimo.

Si una consulta no se puede reasignar, se reinicia o sigue ejecutándose en la cola original. Cuando una consulta se reinicia, se cancela y se reinicia en la nueva cola. Los resultados intermedios se eliminan. La consulta espera en la cola y, cuando hay suficientes slots disponibles, comienza a ejecutarse.