SYS_QUERY_DETAIL - Amazon Redshift

SYS_QUERY_DETAIL

Use SYS_QUERY_DETAIL para visualizar detalhes de consultas no nível da etapa. Cada linha representa uma etapa de determinada consulta WLM com detalhes. Essa visualizações contém muitos tipos de consultas, como DDL, DML e comandos de utilitário (por exemplo, copiar e descarregar). Algumas colunas podem não ser relevantes, conforme o tipo de consulta. Por exemplo, external_scanned_bytes não é relevante para tabelas internas.

SYS_QUERY_HISTORY é visível a 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.

Colunas da tabela

Nome da coluna Tipo de dados Descrição
user_id inteiro O identificador do usuário que enviou a consulta.
query_id bigint O identificador da consulta.
child_query_sequence inteiro A sequência da consulta de usuário regravada, começando com 1.
stream_id inteiro O identificador do fluxo de execução da consulta.
segment_id inteiro O identificador do segmento da consulta.
step_id inteiro O identificador da etapa em um segmento.
step_name text O nome da etapa em um segmento. Os valores possíveis são aggregate, broadcast, delete, distribute, hash, hashjoin, insert, limit, merge, nestloop, parse, return, save, scan, sort, sortlimit, unique e window.
table_id inteiro O identificador de tabela para verificações de tabela permanentes.
table_name character(136) O nome da tabela da etapa que está sendo operada.
is_rrscan caractere Um valor que indica se a etapa é uma etapa de verificação. True (t) indica que a verificação restrita ao intervalo foi utilizada na etapa.
start_time timestamp O horário em que a etapa da consulta começou.
end_time timestamp O horário em que a etapa da consulta foi concluída.
duration bigint O tempo (em microssegundos) gasto na etapa.
alerta text A descrição do evento de alerta.
input_bytes bigint Os bytes de entrada para a etapa atual.
input_rows bigint As linhas de entrada para a etapa atual.
output_bytes bigint Os bytes de saída para a etapa atual.
output_rows bigint As linhas de saída para a etapa atual.
blocks_read bigint O número de blocos lidos pela etapa.
blocks_write bigint O número de blocos gravados pela etapa.
local_read_IO bigint O número de leitura de blocos do cache de disco local.
remote_read_IO bigint O número de blocos lidos remotamente.
origem text O tipo de objeto de banco de dados que foi verificado. Essa coluna só tem um valor quando o valor da linha step_name é scan.
data_skewness inteiro A distorção da distribuição das linhas de saída entre todas as etapas. É um número no intervalo de 0% a 100%. Quanto maior o número, mais a distribuição é desequilibrada.
time_skewness inteiro A distorção da distribuição do tempo de execução entre todas as etapas. É um número no intervalo de 0% a 100%. Quanto maior o número, mais a distribuição é desequilibrada.
is_active caractere O estado da consulta no nível de etapa. Os valores possíveis são “t”, que mostra que a etapa está sendo executada ativamente, ou “f”, que indica que a etapa foi concluída.
spilled_block_local_disk bigint O número de blocos excedentes enviados ao disco local.
spilled_block_remote_disk bigint O número de blocos excedentes enviados ao Amazon Simple Storage Service.
step_attribute character(64) Contém informações sobre a etapa associada. Valores possíveis para etapas de verificação: multi-dimensional.

Consultas de exemplo

O exemplo a seguir retorna a saída de SYS_QUERY_DETAIL.

A consulta a seguir mostra os detalhes dos metadados da consulta no nível da etapa, incluindo o nome da etapa, input_bytes, output_bytes, input_rows, output_rows.

SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, trim(step_name) AS step_name, duration, input_bytes, output_bytes, input_rows, output_rows FROM sys_query_detail WHERE query_id IN (193929) ORDER BY query_id, stream_id, segment_id, step_id DESC;

Exemplo de resultado.

query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | duration | input_bytes | output_bytes | input_rows | output_rows ----------+----------------------+-----------+------------+---------+------------+-----------------+-------------+--------------+------------+------------- 193929 | 2 | 0 | 0 | 3 | hash | 37144 | 0 | 9350272 | 0 | 292196 193929 | 5 | 0 | 0 | 3 | hash | 9492 | 0 | 23360 | 0 | 1460 193929 | 1 | 0 | 0 | 3 | hash | 46809 | 0 | 9350272 | 0 | 292196 193929 | 4 | 0 | 0 | 2 | return | 7685 | 0 | 896 | 0 | 112 193929 | 1 | 0 | 0 | 2 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 2 | 0 | 0 | 2 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 2 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 2 | return | 11033 | 0 | 14336 | 0 | 112 193929 | 2 | 0 | 0 | 1 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 1 | 0 | 0 | 1 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 1 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 1 | aggregate | 11033 | 0 | 201488 | 0 | 14 193929 | 4 | 0 | 0 | 1 | aggregate | 7685 | 0 | 28784 | 0 | 14 193929 | 5 | 0 | 0 | 0 | scan | 9492 | 0 | 23360 | 292196 | 1460 193929 | 4 | 0 | 0 | 0 | scan | 7685 | 0 | 1344 | 112 | 112 193929 | 2 | 0 | 0 | 0 | scan | 37144 | 0 | 7304900 | 292196 | 292196 193929 | 3 | 0 | 0 | 0 | scan | 11033 | 0 | 13440 | 112 | 112 193929 | 1 | 0 | 0 | 0 | scan | 46809 | 0 | 7304900 | 292196 | 292196 193929 | 5 | 0 | 0 | -1 | | 9492 | 12288 | 0 | 0 | 0 193929 | 1 | 0 | 0 | -1 | | 46809 | 16384 | 0 | 0 | 0 193929 | 2 | 0 | 0 | -1 | | 37144 | 16384 | 0 | 0 | 0 193929 | 4 | 0 | 0 | -1 | | 7685 | 28672 | 0 | 0 | 0 193929 | 3 | 0 | 0 | -1 | | 11033 | 114688 | 0 | 0 | 0

Para visualizar as tabelas no banco de dados na ordem das mais para as menos usadas, use o exemplo a seguir. Substitua sample_data_dev por seu próprio banco de dados. Observe que essa consulta contará as consultas a partir da criação do cluster, mas os dados de visualização do sistema não serão salvos quando faltar espaço no data warehouse.

SELECT table_name, COUNT (DISTINCT query_id) FROM SYS_QUERY_DETAIL WHERE table_name LIKE 'sample_data_dev%' GROUP BY table_name ORDER BY COUNT(*) DESC; +---------------------------------+-------+ | table_name | count | +---------------------------------+-------+ | sample_data_dev.tickit.venue | 4 | | sample_data_dev.myunload1.venue | 3 | | sample_data_dev.tickit.listing | 1 | | sample_data_dev.tickit.category | 1 | | sample_data_dev.tickit.users | 1 | | sample_data_dev.tickit.date | 1 | | sample_data_dev.tickit.sales | 1 | | sample_data_dev.tickit.event | 1 | +---------------------------------+-------+