STL_ALERT_EVENT_LOG - Amazon Redshift

STL_ALERT_EVENT_LOG

Registra um alerta quando o otimizador de consultas identifica as condições que podem indicar problemas de performance. Use a visualização STL_ALERT_EVENT_LOG para identificar oportunidades para melhorar a performance da consulta.

Uma consulta consiste em vários segmentos e cada segmento consiste em uma ou mais etapas. Para ter mais informações, consulte Processamento de consulta.

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

nota

STL_ALERT_EVENT_LOG só contém consultas executadas em clusters principais. Ele não contém consultas executadas em clusters de escalabilidade de simultaneidade. Para acessar consultas executadas em clusters de escalabilidade principais e de simultaneidade, é recomendável usar a 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.

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. A coluna de consulta pode ser usada para unir outras tabelas e exibições do sistema.
slice inteiro O número que identifica a fatia em que a consulta estava sendo executada.
segment inteiro O número que identifica o segmento da consulta.
etapa inteiro Etapa da consulta que foi executada.
pid inteiro O ID do processo associado à instrução e à fatia. A mesma consulta poderá ter vários PIDs, se for executada em várias fatias.
xid bigint O ID da transação associada à instrução.
evento character(1024) A descrição do evento de alerta.
solução character(1024) A solução recomendada.
event_time timestamp O horário (em UTC) de início da consulta. O tempo total inclui consultas e execução, com seis dígitos de precisão para segundos fracionários. Por exemplo: 2009-06-12 11:29:19.131358.

Observações de uso

Você pode usar o STL_ALERT_EVENT_LOG para identificar problemas potenciais nas consultas, depois siga as práticas recomendadas em Ajustar a performance da consulta para otimizar o design do banco de dados e reescrever as consultas. A tabela STL_ALERT_EVENT_LOG registra os seguintes alertas:

  • Ausência de estatísticas

    Não há estatísticas. Execute o ANALYZE depois de carregar dados ou de atualizações significativas e use o STATUPDATE com as operações COPY. Para ter mais informações, consulte Práticas recomendadas do Amazon Redshift para criar consultas.

  • Loop aninhado

    Um loop aninhado é geralmente um produto cartesiano. Avalie sua consulta para assegurar que todas as tabelas que participam das operações estão sendo unidas de forma eficiente.

  • Filtro muito seletivo

    A taxa de linhas retornadas em relação às linhas pesquisadas na varredura é menor do que 0.05. Linhas verificadas refere-se ao valor de rows_pre_user_filter e linhas retornadas refere-se ao valor das linhas na visualização do sistema STL_SCAN. Indica que a consulta está fazendo a varredura em um número excepcionalmente grande de linhas para determinar o conjunto de resultados. Isso pode ser causado pela falta ou por erros de chaves de classificação. Para ter mais informações, consulte Trabalhar com chaves de classificação.

  • Excesso de linhas fantasma

    Uma varredura ignorou um número relativamente grande de linhas que estão marcadas como excluídas, mas não como limpadas, ou de linhas que foram inseridas, mas não confirmadas. Para ter mais informações, consulte Vacuum de tabelas.

  • Grande distribuição

    Mais de 1.000.000 de linhas foram redistribuídas para uma junção hash ou agregação. Para ter mais informações, consulte Trabalhar com estilos de distribuição de dados.

  • Grande transmissão

    Mais de 1.000.000 de linhas foram transmitidas para uma junção hash. Para ter mais informações, consulte Trabalhar com estilos de distribuição de dados.

  • Execução em série

    Um estilo de redistribuição DS_DIST_ALL_INNER foi indicado no plano de consulta, o que força uma execução em série, pois toda a tabela interna foi redistribuída para um único nó. Para ter mais informações, consulte Trabalhar com estilos de distribuição de dados.

Consultas de exemplo

As consultas a seguir mostram eventos de alerta para quatro consultas.

SELECT query, substring(event,0,25) as event, substring(solution,0,25) as solution, trim(event_time) as event_time from stl_alert_event_log order by query; query | event | solution | event_time -------+-------------------------------+------------------------------+--------------------- 6567 | Missing query planner statist | Run the ANALYZE command | 2014-01-03 18:20:58 7450 | Scanned a large number of del | Run the VACUUM command to rec| 2014-01-03 21:19:31 8406 | Nested Loop Join in the query | Review the join predicates to| 2014-01-04 00:34:22 29512 | Very selective query filter:r | Review the choice of sort key| 2014-01-06 22:00:00 (4 rows)