EXPLAIN se junta aos 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á.

EXPLAIN se junta aos planos de consulta do Amazon Redshift

O Amazon Redshift usa diferentes operadores de junção para recuperar dados com base no seguinte:

  • O design físico das tabelas que estão sendo unidas

  • A estrutura da consulta

  • A localização dos dados exigidos pela junção

  • Os requisitos específicos da consulta em si

Os seguintes tipos de junção são comumente usados no Amazon Redshift:

  • Loop aninhado — Um loop aninhado ocorre quando uma tabela de hash não pode ser criada entre as duas tabelas. Os loops aninhados são usados principalmente para junções cruzadas (produtos cartesianos) e algumas junções de desigualdade. Isso exigirá que o banco de dados verifique todos os valores na tabela da esquerda em relação a todos os valores da tabela da direita. A complexidade de uma junção de loop aninhada é “quadrática”, pois você deve realizar aproximadamente N*N (ou N²) operações diferentes para processar a junção. O loop aninhado é o tipo de junção menos ideal.

  • Junção de hash — Em uma junção de hash, as condições de junção não são perfeitas uma para a outra, mas o Amazon Redshift pode gerenciar o uso de junções de hash com um pouco de trabalho. Uma junção de hash geralmente é mais rápida do que uma junção de loop aninhada. O Amazon Redshift analisa as duas tabelas e, entre elas, cria uma tabela de hash, que é como uma tabela de pesquisa que fica no meio das tabelas. Por exemplo, os operadores hash join e hash são usados ao unir tabelas em que as colunas de junção não são chaves de distribuição e chaves de classificação.

  • Junção de mesclagem — Uma união de mesclagem geralmente é a junção mais rápida e é usada para junções internas e externas. Em uma junção de mesclagem, as duas tabelas são perfeitas uma para a outra. Isso significa que a condição de junção em cada lado é a chave de distribuição e a chave de classificação. Ambas as mesas se alinham perfeitamente sem a necessidade de ajustes. Observe que as linhas não classificadas nas tabelas devem ser menores que 20% das tabelas de junção. Para ver a porcentagem de linhas não classificadas, consulte a tabela do sistema SVV_TABLE_INFO. A junção de mesclagem não é usada para junções completas.