

 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/). 

# Planejamento de consulta e fluxo de trabalho de execução
<a name="c-query-planning"></a>

A ilustração a seguir fornece uma visão detalhada do planejamento e fluxo de trabalho da execução da consulta.

![O fluxo de trabalho de planejamento e execução de consultas para um nó líder.](http://docs.aws.amazon.com/pt_br/redshift/latest/dg/images/07-QueryPlanning.png)


O planejamento e fluxo de trabalho de execução da consulta seguem as seguintes etapas:

1. O nó líder recebe a consulta e analisa o SQL.

1. O analisador produz uma árvore de consulta inicial que é uma representação lógica da consulta original. Em seguida, o Amazon Redshift insere essa árvore de consulta no otimizador de consultas.

1. O otimizador avalia e, se necessário, reescreve a consulta para maximizar sua eficiência. Esse processo às vezes resulta na criação de múltiplas consultas relacionadas para substituir uma única consulta.

1. O otimizador gera um plano de consulta (ou vários, se a etapa anterior resultou em múltiplas consultas) para a execução com a melhor performance. O plano de consulta especifica as opções de execução, tais como tipos de junção, ordem de junção, opções de agregação e os requisitos de distribuição de dados. 

   Use o comando [EXPLAIN](r_EXPLAIN.md) para visualizar o plano de consulta. O plano de consulta é uma ferramenta fundamental para analisar e ajustar consultas complexas. Para obter mais informações, consulte [Criar e interpretar um plano de consulta](c-the-query-plan.md).

1. O mecanismo de execução converte o plano de consulta em *etapas*, *segmentos* e *fluxos*:  
**Etapa**  
Cada etapa é uma operação individual necessária durante a execução da consulta. As etapas podem ser combinadas para permitir que os nós de computação executem uma consulta, junção ou outra operação do banco de dados.  
**Segmento**  
Uma combinação de várias etapas que podem ser realizadas por um único processo, como também a menor unidade de compilação executável por uma fatia do nó de computação. Uma *fatia* é a unidade de processamento paralelo no Amazon Redshift. Os segmentos em um fluxo são executados em paralelo.  
**Fluxo**  
Uma coleção de segmentos a serem divididos entre as fatias disponíveis do nó de computação.

   O mecanismo de execução gera o código compilado com base nas etapas, segmentos e fluxos. O código compilado é executado mais rapidamente que o código interpretado e usa menos capacidade computacional. Este código compilado é, então, transmitido para os nós de computação.
**nota**  
Ao avaliar suas consultas, você deve sempre comparar os tempos para segunda execução de uma consulta, pois a primeira execução inclui as despesas gerais de compilação do código. Para obter mais informações, consulte [Fatores que afetam a performance da consulta](c-query-performance.md).

1. As fatias do nó de computação executam os segmentos da consulta em paralelo. Como parte desse processo, o Amazon Redshift aproveita a comunicação de rede, a memória e o gerenciamento de disco otimizados para passar resultados intermediários de uma etapa do plano de consulta para a próxima. Isso também ajuda a acelerar a execução da consulta.

As etapas 5 e 6 acontecem uma vez para cada fluxo. O mecanismo cria os segmentos executáveis para um fluxo e os envia para os nós de computação. Quando os segmentos daquele fluxo são completados, o mecanismo gera os segmentos para o próximo fluxo. Desta forma, o mecanismo pode analisar o que aconteceu no fluxo anterior (por exemplo, se as operações foram baseadas em disco) para influenciar a geração de segmentos no fluxo seguinte.

Quando os nós de computação terminam, eles retornam os resultados da consulta para o nó de liderança para processamento final. O nó de liderança efetua a fusão dos dados em um único conjunto de resultados e aborda qualquer classificação ou agregação necessária. O nó de liderança, então, retorna os resultados ao cliente.

**nota**  
Os nós de computação podem retornar alguns dados ao nó de liderança durante a execução de consulta, caso necessário. Por exemplo, se você tiver uma subconsulta com uma cláusula LIMIT, o limite será aplicado no nó de liderança antes que os dados sejam redistribuídos através do cluster para processamento adicional.