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ê verá com mais frequência na saída de EXPLAIN.
Verificação sequencial
O operador de varredura sequencial (Seq Scan) indica uma varredura de tabela. A verificação sequencial analisa cada coluna na tabela de forma sequencial do começo ao fim e avalia as restrições da consulta (na cláusula WHERE) para cada linha.
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 cross-joins. Junções cruzadas sem uma condição de junção que resulte no produto cartesiano de duas tabelas. Os loops aninhados são normalmente executados como junções de loops 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 apresentada abaixo 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 e junção por hash
Uma junção por hash e operadores hash geralmente são mais rápidos do que uma junção de loop aninhado. Esses operadores são usados para junções internas e junções externas esquerda e direita. Você pode usar operadores hash e junção por hash para juntar tabelas em que as colunas de junção não são simultaneamente chaves de distribuição e chaves de classificação. O operador hash cria a tabela hash para a tabela interna na junção. A junção por hash lê a tabela externa, executa o hash na coluna de junção e encontra correspondências na tabela interna de hash.
Junção de mesclagem
A junção por mesclagem é normalmente a mais rápida, e é usada para junções internas e externas. A junção por mesclagem não é usada para junções completas. Você pode usar a junção por mesclagem ao juntar tabelas em que as colunas de junção são tanto chaves de distribuição como chaves de classificação, e quando menos de 20% das tabelas para junção não estão classificadas. O operador da junção por mesclagem lê duas tabelas classificadas na ordem e localiza as linhas correspondentes. Para ver a porcentagem de linhas não classificadas, consulte a tabela de sistema SVV_TABLE_INFO.
Operadores de agregação
O plano de consulta usa os seguintes operadores em consultas que envolvem funções agregadas e operações GROUP BY.
-
Aggregate: operador para funções de agregação escalar, como
AVGeSUM -
HashAggregate: operador para funções de agregação agrupadas sem classificação
-
GroupAggregate: operador para funções de agregação agrupadas com classificação.
Operadores de classificação
O plano de consulta usa os seguintes operadores quando as consultas precisam classificar ou mesclar conjuntos de resultados:
-
Sort: avalia a cláusula
ORDER BYe outras operações de classificação, como as classificações exigidas por consultas e junçõesUNION, consultasSELECT DISTINCTe funções de janela. -
Merge: produz resultados finais classificados de acordo com os resultados classificados intermediários derivados 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 UNION, INTERSECT e EXCEPT:
-
Subquery: usado para executar consultas
UNION -
Hash Intersect Distinct: usado para executar consultas
INTERSECT -
SetOp Except: usado para executar consultas
EXCEPT(ouMINUS)
Outros operadores
Os operadores a seguir também aparecem frequentemente na saída de EXPLAIN para consultas de rotina:
-
Unique : remove duplicatas para consultas
SELECT DISTINCTe consultasUNION -
Limit : processa a cláusula
LIMIT -
Window: executa as funções da janela
-
Result: executa funções escalares que não envolvem acesso à tabela
-
Subplan: usado para determinadas subconsultas
-
Network: envia resultados intermediários ao nó de liderança para processamento adicional
-
Materialize: salva linhas para entrada em junções de loop aninhado e algumas junções por mesclagem.