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.