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;