STV_INFLIGHT - Amazon Redshift

STV_INFLIGHT

Use a tabela STV_INFLIGHT para determinar quais consultas estão sendo executadas no cluster no momento. Se você estiver solucionando problemas, é útil verificar o status de consultas de longa duração.

A tabela STV_INFLIGHT não mostra as consultas executadas apenas nos nós de liderança. Para obter mais informações, consulte Função de apenas nó líder. STV_INFLIGHT é 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 obter 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.

Solução de problemas com STV_INFLIGHT

Se você usa STV_INFLIGHT para solucionar problemas de performance de uma consulta ou de uma coleção de consultas, observe o seguinte:

  • Transações abertas de longa duração geralmente aumentam a carga. Essas transações abertas podem resultar em tempos de execução mais longos para outras consultas.

  • Os trabalhos de COPY e ETL de longa duração podem afetar outras consultas em execução no cluster, caso estejam consumindo muitos recursos de computação. Na maioria dos casos, mover esses trabalhos de longa duração para períodos de baixo uso aumenta a performance das workloads de relatórios ou análises.

  • Há visualizações que fornecem informações relacionadas a STV_INFLIGHT. Isso inclui STL_QUERYTEXT, que captura o texto da consulta para comandos SQL, e SVV_QUERY_INFLIGHT, que une STV_INFLIGHT a STL_QUERYTEXT. Você também pode usar STV_RECENTS com STV_INFLIGHT para solução de problemas. Por exemplo, STV_RECENTS pode indicar se consultas específicas estão em um estado Em execução ou Concluído. A combinação dessas informações com os resultados de STV_INFLIGHT pode fornecer mais dados sobre as propriedades de uma consulta e o impacto nos recursos de computação.

Você também pode monitorar a execução de consultas usando o console do Amazon Redshift.

Colunas da tabela

Nome da coluna Tipo de dados Descrição
userid inteiro O ID do usuário que gerou a entrada.
slice inteiro A fatia onde a consulta está sendo executada.
consulta inteiro ID da consulta. Ele pode ser usado para unir várias outras tabelas e exibições do sistema.
rótulo 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á branco.
xid bigint ID da transação.
pid inteiro ID do processo. Todas as consultas em uma sessão são executadas no mesmo processo, portanto esse valor permanece constante se você executa uma série de consultas na mesma sessão. Use esta coluna para unir a tabela STL_ERROR.
starttime timestamp O horário do início da consulta.
text character(100) O texto da consulta, que é truncado após 100 caracteres se a instrução exceder esse limite.
suspended inteiro Se a consulta está suspensa ou não. 0 = false; 1 = true.
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 os seguintes:

0 - Executada no cluster principal

1 — Executada em um cluster de escalabilidade da simultaneidade

Consultas de exemplo

Para ver todas as consultas em execução no momento no banco de dados, digite a seguinte consulta:

select * from stv_inflight;

Os dados de saída de exemplo abaixo mostram que duas consultas estão em execução no momento, incluindo a própria consulta com a tabela STV_INFLIGHT e uma consulta que foi executada de um script chamado avgwait.sql:

select slice, query, trim(label) querylabel, pid, starttime, substring(text,1,20) querytext from stv_inflight; slice|query|querylabel | pid | starttime | querytext -----+-----+-----------+-----+--------------------------+-------------------- 1011 | 21 | | 646 |2012-01-26 13:23:15.645503|select slice, query, 1011 | 20 |avgwait.sql| 499 |2012-01-26 13:23:14.159912|select avg(datediff( (2 rows)

A consulta a seguir seleciona várias colunas, incluindo concurrency_scaling_status. Essa coluna indica se as consultas estão sendo enviadas ao cluster de escalabilidade simultânea. Se o valor for 1 para alguns resultados, é uma indicação de que recursos de computação de escalabilidade simultânea estão sendo usados. Para obter mais informações, consulte Trabalhar com a escalabilidade de simultaneidade.

select userid, query, pid, starttime, text, suspended, concurrency_scaling_status from STV_INFLIGHT;

O exemplo de saída mostra uma consulta sendo enviada ao cluster de escalabilidade simultânea.

query | pid | starttime | text | suspended | concurrency_scaling_status --------+---------+----------------------------|------------------------|---------------|------------------------------- 1234567 | 123456 | 2012-01-26 13:23:15.645503 | select userid, query... 0 1 2345678 | 234567 | 2012-01-26 13:23:14.159912 | select avg(datediff(... 0 0 (2 rows)

Para obter mais dicas sobre como solucionar problemas de performance de consultas, consulte Solução de problemas de consultas.