OPERADORES EXPLAIN para planos de consulta do Amazon Redshift - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

OPERADORES EXPLAIN para planos de consulta do Amazon Redshift

Esta seção descreve resumidamente os operadores que você vê com mais frequência na EXPLAIN saída.

Digitalização sequencial

O operador de varredura sequencial (Seq Scan) indica uma varredura de tabela. O Seq Scan verifica cada coluna na tabela sequencialmente do início ao fim e avalia as restrições de consulta (na cláusula) para cada linha. WHERE

Operadores de junção

O Amazon Redshift seleciona operadores de junção com base no design físico das tabelas que estão sendo juntadas, a localização dos dados necessários para a junção e os requisitos específicos da própria consulta.

Loop aninhado

Um loop aninhado é usado principalmente para junções cruzadas. Junções cruzadas sem uma condição de junção que resulte no produto cartesiano de duas tabelas. Os loops aninhados geralmente são executados como junções de loop aninhados, que são os mais lentos dos tipos de junção possíveis. Se um loop aninhado estiver presente, você poderá ver um evento de alerta de loop aninhado na visualização STL_ALERT_EVENT_LOG. Você pode executar a consulta a seguir para identificar as consultas que têm loops aninhados:

select q.query, trim(q.querytxt) as sql_query, q.starttime from stl_query q join stl_alert_event_log l on l.query = q.query and l.event like 'Nested Loop Join in the query plan%' order by q.starttime desc;

Hash join e hash

A junção de hash e os operadores de hash geralmente são mais rápidos do que uma junção de loop aninhada. Esses operadores são usados para junções internas e junções externas esquerda e direita. Você pode usar a junção de hash e operadores de hash ao unir tabelas nas quais as colunas de junção não são chaves de distribuição e chaves de classificação. O operador de hash cria a tabela de hash para a tabela interna na junção. O operador de junção de hash lê a tabela externa, faz o hash da coluna de junção e encontra correspondências na tabela de hash interna.

Junção de mesclagem

O operador de junção de mesclagem geralmente é o mais rápido e é usado para junções internas e externas. A junção de mesclagem não é usada para junções completas. Você pode usar uma junção de mesclagem ao unir tabelas em que as colunas de junção são chaves de distribuição e chaves de classificação, e quando menos de 20% das tabelas de junção não estão classificadas. O operador de junção de mesclagem lê duas tabelas classificadas em ordem e encontra as linhas correspondentes. Para ver a porcentagem de linhas não classificadas, consulte a tabela do sistema SVV_TABLE_INFO.

Operadores de agregação

O plano de consulta usa os seguintes operadores em consultas que envolvem funções e GROUP BY operações agregadas:

  • Agregado — Operador para funções agregadas escalares, como e AVG SUM

  • HashAggregate— Operador para funções agregadas agrupadas não classificadas

  • GroupAggregate— Operador para funções agregadas agrupadas ordenadas

Operadores de classificação

O plano de consulta usa os seguintes operadores quando as consultas precisam classificar ou mesclar conjuntos de resultados:

  • Classificar — avalia a ORDER BY cláusula e outras operações de classificação, como classificações exigidas por UNION consultas e junções, SELECT DISTINCT consultas e funções de janela

  • Mesclar — Produz resultados finais ordenados de acordo com os resultados intermediários ordenados que derivam de operações paralelas

Operadores UNION, INTERSECT e EXCEPT

O plano de consulta usa os seguintes operadores para consultas que envolvem operações de conjunto com UNIONINTERSECT, eEXCEPT:

  • Subconsulta — Usada para executar UNION consultas

  • Hash Intersect Distinct — Usado para executar consultas INTERSECT

  • SetOp Exceto — Usado para executar EXCEPT (ouMINUS) consultas

Outros operadores

Os operadores a seguir também aparecem com frequência na EXPLAIN saída de consultas de rotina:

  • Exclusivo — remove duplicatas para SELECT DISTINCT consultas e consultas UNION

  • Limite — Processa a LIMIT cláusula

  • Janela — Executa as funções da janela

  • Resultado — Executa funções escalares que não envolvem nenhum acesso à tabela

  • Subplano — Usado para determinadas subconsultas

  • Rede — envia resultados intermediários para o nó líder para processamento adicional

  • Materializar — Salva linhas para entrada em junções de loop aninhadas e algumas junções de mesclagem