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 | integer | O ID do usuário que gerou a entrada. |
xid | integer | O ID da transação da consulta ou subconsulta. |
tarefa | integer | 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 | integer | 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 | integer | 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 | integer | 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)