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.