SVL_QUERY_REPORT - Amazon Redshift

SVL_QUERY_REPORT

O Amazon Redshift cria a visualização SVL_QUERY_REPORT de uma UNION de várias tabelas de sistema STL do Amazon Redshift para fornecer informações sobre as etapas de consulta concluídas.

Essa visualização divide as informações sobre as consultas executadas por fatia e por etapa, o que pode ajudar a solucionar problemas de nó e fatia no cluster do Amazon Redshift.

SVL_QUERY_REPORT é 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.

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.
slice inteiro A fatia dos dados onde a etapa foi executada.
segment 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 A etapa da consulta que foi concluída.
start_time timestamp O horário exato (em UTC) do início da execução do segmento, com 6 dígitos de precisão para as frações de segundo. Por exemplo: 2012-12-12 11:29:19.131358
end_time timestamp O horário exato (em UTC) do término da execução do segmento, com 6 dígitos de precisão para as frações de segundo. Por exemplo: 2012-12-12 11:29:19.131467
elapsed_time bigint O tempo (em microssegundos) que levou para o segmento ser executado.
rows bigint O número de linhas produzidas por etapa (por fatia). Esse número representa o número de linhas da fatia que resulta da execução das etapas, e não do número de linhas recebidas ou processadas por etapa. Em outras palavras, esse é o número de linhas que sobreviveram essa etapa e foram passadas para a próxima etapa.
bytes bigint O número de bytes produzidos pela etapa (por fatia).
rótulo char(256) 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: 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. Este valor é o limite de query_working_mem alocado para ser usado durante a execução, não a quantidade de memória que foi realmente usada
is_rrscan character(1) O valor true (t) indica que a varredura restrita ao intervalo foi utilizada na etapa.
is_delayed_scan character(1) O valor true (t) indica que a varredura com atraso foi utilizada na etapa.
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) e antes de aplicar os filtros de consulta definidos pelo usuário.

Consultas de exemplo

A consulta a seguir demonstra a distorção dos dados das linhas retornadas para a consulta com o ID 279. Use esta consulta para determinar se os dados do banco de dados serão distribuídos uniformemente pelas fatias no cluster do data warehouse:

select query, segment, step, max(rows), min(rows), case when sum(rows) > 0 then ((cast(max(rows) -min(rows) as float)*count(rows))/sum(rows)) else 0 end from svl_query_report where query = 279 group by query, segment, step order by segment, step;

Esta consulta deve retornar dados semelhantes aos apresentados na seguinte saída de exemplo:

query | segment | step | max | min | case ------+---------+------+----------+----------+---------------------- 279 | 0 | 0 | 19721687 | 19721687 | 0 279 | 0 | 1 | 19721687 | 19721687 | 0 279 | 1 | 0 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 1 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 4 | 986085 | 986084 | 1.01411202804304e-06 279 | 2 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 2 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 3 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 1 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 2 | 1 | 1 | 0 279 | 5 | 0 | 1 | 1 | 0 279 | 5 | 1 | 1 | 1 | 0 279 | 6 | 0 | 20 | 20 | 0 279 | 6 | 1 | 1 | 1 | 0 279 | 7 | 0 | 1 | 1 | 0 279 | 7 | 1 | 0 | 0 | 0 (19 rows)