SVV_QUERY_STATE
Use a exibição SVV_QUERY_STATE para visualizar as informações sobre o tempo de execução de consultas em execução no momento.
A exibição SVV_QUERY_STATE contém um subconjunto de dados da tabela STV_EXEC_STATE.
SVV_QUERY_STATE é 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_DETAIL. 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.
nota
Essa visualização só está disponível ao consultar clusters provisionados.
Colunas da tabela
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
userid | integer | O ID do usuário que gerou a entrada. |
consulta | integer | ID da consulta. Ele pode ser usado para unir várias outras tabelas e exibições do sistema. |
seg | integer | O número do segmento de consulta que está em execução. Uma consulta consiste em vários segmentos e cada segmento consiste em uma ou mais etapas. Os segmentos de uma consulta podem ser executados em paralelo. Cada segmento executa em um único processo. |
etapa | integer | O número da etapa de consulta que está em execução. Uma etapa é a menor unidade do tempo de execução de uma consulta. Cada etapa representa uma unidade de trabalho distinta, como fazer a varredura de uma tabela, retornar resultados ou classificar dados. |
maxtime | interval | O tempo máximo (em microssegundos) para executar esta etapa. |
avgtime | interval | O tempo médio (em microssegundos) para executar esta etapa. |
rows | bigint | O número de linhas produzidas pela etapa que está em execução. |
bytes | bigint | O número de bytes produzidos pela etapa que está em execução. |
cpu | bigint | Para uso interno. |
memory | bigint | Para uso interno. |
rate_row | double precision | A taxa de linhas por segundo desde o início da consulta, calculada pela soma das linhas e divisão pelo número de segundos, desde quando a consulta começou até a hora atual. |
rate_byte | double precision | A taxa de bytes por segundo desde o início da consulta, calculada pela soma dos bytes e divisão pelo número de segundos, desde quando a consulta começou até a hora atual. |
rótulo | character(25) | O rótulo da consulta: um nome para a etapa, como scan ou sort . |
is_diskbased | character(1) | Indica se esta etapa da consulta é executada como uma operação em disco: true (t , verdadeiro) ou false (f , falso). Somente algumas etapas, como hash, classificação e etapas de agregação podem ir para o disco. Muitos tipos de etapas são sempre realizados na memória. |
workmem | bigint | A quantidade de memória de trabalho (em bytes) atribuída à etapa da consulta. |
num_parts | integer | O número de partições em que a tabela hash é particionada durante uma etapa de hash. Um número positivo nessa coluna não significa que a etapa de hash é executada como uma operação em disco. Verifique o valor na coluna IS_DISKBASED para ver se a etapa de hash foi executada em disco. |
is_rrscan | character(1) | O valor true (t ) indica que a varredura restrita ao intervalo foi utilizada na etapa. O padrão é false (f ). |
is_delayed_scan | character(1) | O valor true (t ) indica que a varredura com atraso foi utilizada na etapa. O padrão é false (f ). |
Consultas de exemplo
Determinação do tempo de processamento de uma consulta por etapa
A consulta a seguir mostra quanto tempo cada etapa da consulta com a ID de consulta 279 levou para ser executada e quantas linhas de dados o Amazon Redshift processou:
select query, seg, step, maxtime, avgtime, rows, label from svv_query_state where query = 279 order by query, seg, step;
Esta consulta recupera as informações do processamento da consulta 279, como mostram os seguintes dados de saída de exemplo:
query | seg | step | maxtime | avgtime | rows | label ------+---------+------+---------+---------+---------+------------------- 279 | 3 | 0 | 1658054 | 1645711 | 1405360 | scan 279 | 3 | 1 | 1658072 | 1645809 | 0 | project 279 | 3 | 2 | 1658074 | 1645812 | 1405434 | insert 279 | 3 | 3 | 1658080 | 1645816 | 1405437 | distribute 279 | 4 | 0 | 1677443 | 1666189 | 1268431 | scan 279 | 4 | 1 | 1677446 | 1666192 | 1268434 | insert 279 | 4 | 2 | 1677451 | 1666195 | 0 | aggr (7 rows)
Determinar se há consultas ativas em execução no disco
A consulta a seguir mostra se há consultas ativas em execução no disco no momento:
select query, label, is_diskbased from svv_query_state where is_diskbased = 't';
Esta saída de exemplo mostra as consultas ativas em execução no disco no momento:
query | label | is_diskbased -------+--------------+-------------- 1025 | hash tbl=142 | t (1 row)