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 | +---------------------------------+-------+