

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Analisar o plano de consulta
<a name="c-analyzing-the-query-plan"></a>

Execute o comando [EXPLAIN](r_EXPLAIN.md) para obter um plano de consulta.

Antes de analisar o plano de consulta, você deve ser familiarizar com sua leitura. Se você não estiver familiarizado com a leitura de um plano de consulta, sugerimos a leitura de [Criar e interpretar um plano de consulta](c-the-query-plan.md) antes de continuar.

Para analisar os dados fornecidos pelo plano de consulta, siga estas etapas:

1. Identifique as etapas com o custo mais alto. Concentre-se em otimizar estas etapas ao avançar pelas etapas restantes.

1. Veja os tipos de junção:
   + **Loop aninhado**: Tais junções geralmente ocorrem quando uma condição de junção é omitida. Para soluções recomendadas, consulte [Loop aninhado](query-performance-improvement-opportunities.md#nested-loop).
   + **Hash e junção hash**: Junções hash são usadas durante a junção de tabelas em que as colunas de junção não são chaves de distribuição e também não são chaves de classificação. Para soluções recomendadas, consulte [Junção de hash](query-performance-improvement-opportunities.md#hash-join).
   + **Junção de mesclagem**: Nenhuma alteração é necessária.

1. Observe qual tabela é usada para a junção interna e qual é usada para a junção externa. O mecanismo de consulta geralmente escolhe a menor tabela para a junção interna e a maior tabela para a junção externa. Se essa escolha não ocorre, suas estatísticas provavelmente estão desatualizadas. Para soluções recomendadas, consulte [Estatísticas de tabela ausentes ou desatualizadas](query-performance-improvement-opportunities.md#table-statistics-missing-or-out-of-date).

1. Verifique se há alguma operação de classificação de alto custo. Se houver, consulte [Linhas não classificadas ou mal classificadas](query-performance-improvement-opportunities.md#unsorted-or-mis-sorted-rows) para as soluções recomendadas.

1. Procure os seguintes operadores de transmissão onde há operações de alto custo:
   + **DS\_BCAST\_INNER**: indica que a tabela é transmitida a todos os nós de computação. Isso é adequado para uma tabela pequena, mas não é ideal para uma tabela maior.
   + **DS\_DIST\_ALL\_INNER**: Indica que toda o workload está em uma única fatia.
   + **DS\_DIST\_BOTH**: Indica uma redistribuição pesada.

   Para as soluções recomendadas para essas situações, consulte [Distribuição de dados pouco satisfatória](query-performance-improvement-opportunities.md#suboptimal-data-distribution).