STL_WLM_QUERY - Amazon Redshift

STL_WLM_QUERY

Contém um registro de cada tentativa de execução de uma consulta em uma classe de serviço processada pelo WLM.

STL_WLM_QUERY permanece visível para todos os usuários. Os superusuários podem ver todas as linhas; usuários regulares podem ver somente seus próprios dados. Para ter mais informações, consulte Visibilidade de dados em tabelas e visualizações de sistema.

Alguns ou todos os dados nessa tabela também podem ser encontrados na exibição de monitoramento SYS SYS_QUERY_HISTORY. Os dados na exibição de monitoramento SYS são formatados para serem mais fáceis de usar e compreender. É recomendável usar a exibição de monitoramento SYS nas consultas.

Colunas da tabela

Nome da coluna Tipo de dados Descrição
userid inteiro O ID do usuário que gerou a entrada.
xid inteiro O ID da transação da consulta ou subconsulta.
tarefa inteiro O ID usado para rastrear uma consulta no gerenciador de workload. Ele pode ser associado a vários IDs de consulta. Se uma consulta é reiniciada, a consulta recebe um novo ID de consulta mas não um novo ID de tarefa.
consulta inteiro ID da consulta. Se uma consulta é reiniciada, a consulta recebe um novo ID de consulta mas não um novo ID de tarefa.
service_class inteiro ID da classe de serviço. Para obter uma lista dos IDs de classe de serviço, consulte IDs da classe de serviço do WLM.
slot_count inteiro Número de slots de consulta do WLM que uma consulta usa de acordo com o nível de simultaneidade definido para a fila. O padrão é 1. Para obter mais informações, consulte wlm_query_slot_count.
service_class_start_time timestamp O horário em que a consulta foi atribuída à classe de serviço. Este horário está no fuso horário UTC.
queue_start_time timestamp O horário em que a consulta entrou na fila da classe de serviço. Este horário está no fuso horário UTC.
queue_end_time timestamp O horário em que a consulta saiu da fila da classe de serviço. Este horário está no fuso horário UTC.
total_queue_time bigint O número total de microssegundos que a consulta passou na fila.
exec_start_time timestamp O horário em que a consulta iniciou a execução na classe de serviço. Este horário está no fuso horário UTC.
exec_end_time timestamp O horário em que a consulta concluiu a execução na classe de serviço. Este horário está no fuso horário UTC.
total_exec_time bigint O número de microssegundos que a consulta gastou na execução.
service_class_end_time timestamp O horário em que a consulta saiu da classe de serviço. Este horário está no fuso horário UTC.
final_state character(16) Reservada para uso do sistema.
est_peak_mem bigint Reservada para uso do sistema.
query_priority char(20) A prioridade da consulta. Os valores possíveis são n/a, lowest, low, normal, high e highest, em que n/a significa que a prioridade da consulta não é compatível.
service_class_name character(64) O nome da classe de serviço. Para obter mais informações sobre classes de serviço, consulte Tabelas e visualizações do sistema WLM.

Consultas de exemplo

Visualização do tempo médio da consulta em filas e em execução

A consulta a seguir mostra a configuração atual das classes de serviço maiores do que 4. Para obter uma lista dos IDs de classe de serviço, consulte IDs da classe de serviço do WLM.

A consulta a seguir retorna o tempo médio (em microssegundos) que cada consulta passou em filas de consultas e em execução para cada classe de serviço.

select service_class as svc_class, count(*), avg(datediff(microseconds, queue_start_time, queue_end_time)) as avg_queue_time, avg(datediff(microseconds, exec_start_time, exec_end_time )) as avg_exec_time from stl_wlm_query where service_class > 4 group by service_class order by service_class;

Essa consulta retorna os seguintes dados de saída de exemplo:

svc_class | count | avg_queue_time | avg_exec_time -----------+-------+----------------+--------------- 5 | 20103 | 0 | 80415 5 | 3421 | 34015 | 234015 6 | 42 | 0 | 944266 7 | 196 | 6439 | 1364399 (4 rows)

Visualização do tempo máximo das consultas em filas e em execução

A consulta a seguir retorna o tempo máximo (em microssegundos) que uma consulta passou em todas as filas de consultas e em execução para cada classe de serviço.

select service_class as svc_class, count(*), max(datediff(microseconds, queue_start_time, queue_end_time)) as max_queue_time, max(datediff(microseconds, exec_start_time, exec_end_time )) as max_exec_time from stl_wlm_query where svc_class > 5 group by service_class order by service_class;
svc_class | count | max_queue_time | max_exec_time -----------+-------+----------------+--------------- 6 | 42 | 0 | 3775896 7 | 197 | 37947 | 16379473 (4 rows)