SVL_QUERY_SUMMARY - Amazon Redshift

SVL_QUERY_SUMMARY

Use a exibição SVL_QUERY_SUMMARY para encontrar informações gerais sobre a execução de uma consulta.

A exibição SVL_QUERY_SUMMARY contém um subconjunto de dados da exibição SVL_QUERY_REPORT. Observe que as informações na SVL_QUERY_SUMMARY são agregadas de todos os nós.

nota

A visualização SVL_QUERY_SUMMARY contém apenas informações sobre as consultas realizadas pelo Amazon Redshift, e não por outros comandos de utilitário e DDL. Para obter uma lista completa e informações sobre todas as instruções executadas pelo Amazon Redshift, inclusive DDL e comandos de utilitário, é possível consultar a visualização SVL_STATEMENTTEXT.

SVL_QUERY_SUMMARY é 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_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.

Para obter informações sobre SVCS_QUERY_SUMMARY, consulte SVCS_QUERY_SUMMARY.

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. Ele pode ser usado para unir várias outras tabelas e exibições do sistema.
stm inteiro Stream: um conjunto de segmentos simultâneos em uma consulta. Uma consulta tem um ou mais streams.
seg inteiro O número do segmento. 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 inteiro Etapa da consulta que foi executada.
maxtime bigint O tempo máximo de execução para esta etapa (em microssegundos).
avgtime bigint O tempo médio de execução para esta etapa (em microssegundos).
rows bigint O número de linhas de dados envolvidas na etapa da consulta.
bytes bigint O número de bytes de dados envolvidos na etapa da consulta.
rate_row double precision A taxa de execução da consulta por linha.
rate_byte double precision A taxa de execução da consulta por byte.
rótulo text O rótulo da etapa, que consiste no nome da etapa da consulta e, se for aplicável, no ID e no nome da tabela (por exemplo, scan tbl=100448 name =user). Os IDs de tabela com três dígitos geralmente indicam varreduras de tabelas transitórias. Quando você vê tbl=0, isso normalmente indica uma varredura de um valor constante.
is_diskbased character(1) Indica se esta etapa da consulta foi realizada como uma operação em disco em qualquer nó do cluster: true (t) ou false (f). 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.
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).
rows_pre_filter bigint Para varreduras de tabelas permanentes, o número total de linhas enviadas antes da filtragem das linhas marcadas para exclusão (linhas fantasma).

Consultas de exemplo

Visualização de informações de processamento para uma etapa da consulta

A consulta a seguir mostra as informações básicas de processamento para cada etapa da consulta 87:

select query, stm, seg, step, rows, bytes from svl_query_summary where query = 87 order by query, seg, step;

Esta consulta recupera as informações do processamento da consulta 87, como mostram os seguintes dados de saída de exemplo:

query | stm | seg | step | rows | bytes -------+-----+-----+------+--------+--------- 87 | 0 | 0 | 0 | 90 | 1890 87 | 0 | 0 | 2 | 90 | 360 87 | 0 | 1 | 0 | 90 | 360 87 | 0 | 1 | 2 | 90 | 1440 87 | 1 | 2 | 0 | 210494 | 4209880 87 | 1 | 2 | 3 | 89500 | 0 87 | 1 | 2 | 6 | 4 | 96 87 | 2 | 3 | 0 | 4 | 96 87 | 2 | 3 | 1 | 4 | 96 87 | 2 | 4 | 0 | 4 | 96 87 | 2 | 4 | 1 | 1 | 24 87 | 3 | 5 | 0 | 1 | 24 87 | 3 | 5 | 4 | 0 | 0 (13 rows)

Determinar se houve transbordamento das etapas de consulta para o disco

A consulta a seguir mostra se houve transbordamento para o disco em alguma das etapas da consulta de ID 1025 (veja a exibição SVL_QLOG para saber como obter o ID de uma consulta) ou se a consulta foi totalmente executada na memória:

select query, step, rows, workmem, label, is_diskbased from svl_query_summary where query = 1025 order by workmem desc;

Essa consulta retorna os seguintes dados de saída de exemplo:

query| step| rows | workmem | label | is_diskbased -----+-----+--------+-----------+---------------+-------------- 1025 | 0 |16000000| 141557760 |scan tbl=9 | f 1025 | 2 |16000000| 135266304 |hash tbl=142 | t 1025 | 0 |16000000| 128974848 |scan tbl=116536| f 1025 | 2 |16000000| 122683392 |dist | f (4 rows)

Ao fazer a varredura dos valores pelo IS_DISKBASED, você pode ver quais etapas de consulta foram executadas no disco. Para a consulta 1025, a etapa de hash foi executada em disco. As etapas que podem ser executadas em disco incluem a hash, a aggr e as etapas de classificação. Para visualizar apenas a etapas da consulta que são baseadas em disco, adicione a cláusula and is_diskbased = 't' na instrução de SQL no exemplo acima.