STL_QUERY - Amazon Redshift

STL_QUERY

Retorna as informações de execução de uma consulta de banco de dados.

nota

As visualizações STL_QUERY e STL_QUERYTEXT contêm apenas informações sobre consultas, não outro utilitário e comandos DDL. Para obter uma lista e informações sobre todas as instruções executadas pelo Amazon Redshift, também é possível consultar as visualizações STL_DDLTEXT e STL_UTILITYTEXT. Para obter uma lista completa de todas as instruções executadas pelo Amazon Redshift, é possível consultar a visualização SVL_STATEMENTTEXT.

STL_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.
consulta inteiro ID da consulta. A coluna de consulta pode ser usada para unir outras tabelas e exibições do sistema.
label character(320) O nome do arquivo usado para executar a consulta ou um rótulo definido com o comando SET QUERY_GROUP. Se a consulta não for baseada em arquivos ou o parâmetro QUERY_GROUP não estiver definido, o valor deste campo será default.
xid bigint ID da transação.
pid inteiro ID do processo. Normalmente, todas as consultas de uma sessão são executadas no mesmo processo, portanto esse valor geralmente permanece constante se você executa uma série de consultas na mesma sessão. Após certos eventos internos, o Amazon Redshift pode reiniciar uma sessão ativa e atribuir um novo PID. Para ter mais informações, consulte STL_RESTARTED_SESSIONS.
banco de dados character(32) O nome do banco de dados ao qual o usuário estava conectado quando a consulta foi enviada.
querytxt character(4000) O texto da consulta.
starttime timestamp O horário (em UTC) de início da consulta. O tempo total inclui consultas e execução, com seis dígitos de precisão para segundos fracionários. Por exemplo: 2009-06-12 11:29:19.131358.
endtime timestamp Horário em UTC em que a consulta foi finalizada. O tempo total inclui consultas e execução, com seis dígitos de precisão para segundos fracionários. Por exemplo: 2009-06-12 11:29:19.131358.
aborted inteiro Se uma consulta for interrompida pelo sistema ou cancelada pelo usuário, essa coluna terá o valor 1. Se a consulta for executada até o final (inclusive retornando os resultados para o cliente), essa coluna conterá o valor 0. Se o cliente desconectar antes de receber os resultados, a consulta será marcada como cancelada (1), mesmo que ela tenha sido concluída com êxito no backend.
insert_pristine inteiro Se as consultas de gravação são/puderam ser executadas enquanto a consulta atual está/estava em execução. 1 = nenhuma consulta de gravação permitida. 0 = consultas de gravação permitidas. Essa coluna deve ser usada na depuração.
concurrency_scaling_status inteiro

Indica se a consulta foi executada no cluster principal ou em um cluster de escalabilidade da simultaneidade. Os valores possíveis são:

0 - Executada no cluster principal

1 — Executada em um cluster de escalabilidade da simultaneidade

Maior que 1 - Executada no cluster principal

Consultas de exemplo

A consulta a seguir lista as cinco consultas mais recentes.

select query, trim(querytxt) as sqlquery from stl_query order by query desc limit 5; query | sqlquery ------+-------------------------------------------------- 129 | select query, trim(querytxt) from stl_query order by query; 128 | select node from stv_disk_read_speeds; 127 | select system_status from stv_gui_status 126 | select * from systable_topology order by slice 125 | load global dict registry (5 rows)

A consulta a seguir retorna o tempo decorrido em ordem descendente para as consultas executadas no dia 15 de fevereiro de 2013.

select query, datediff(seconds, starttime, endtime), trim(querytxt) as sqlquery from stl_query where starttime >= '2013-02-15 00:00' and endtime < '2013-02-16 00:00' order by date_diff desc; query | date_diff | sqlquery -------+-----------+------------------------------------------- 55 | 119 | padb_fetch_sample: select count(*) from category 121 | 9 | select * from svl_query_summary; 181 | 6 | select * from svl_query_summary where query in(179,178); 172 | 5 | select * from svl_query_summary where query=148; ... (189 rows)

A consulta a seguir mostra o tempo da fila e o tempo de execução para consultas. Consultas com concurrency_scaling_status = 1 executadas em um cluster de escalabilidade da simultaneidade. Todas as outras consultas executadas no cluster principal.

SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND service_class > 5 AND q.starttime > '2019-03-01 16:38:00' AND q.endtime < '2019-03-01 17:40:00' GROUP BY 1,2 ORDER BY 1,2;