Selecione o melhor estilo de distribuição
Quando você executa uma consulta, o otimizador de consulta redistribui as linhas aos nós de computação conforme necessário para executar junções e agregações. O objetivo da seleção de um estilo de distribuição da tabela é minimizar o impacto da etapa de redistribuição colocando os dados no local em que eles precisam estar antes que a consulta seja executada.
nota
Quando você usa a otimização automática de tabelas, não é necessário escolher o estilo de distribuição da tabela. Para ter mais informações, consulte Otimização automática de tabelas.
Seguem algumas sugestões para a melhor abordagem:
-
Distribuir a tabela de fatos e uma tabela de dimensões nas colunas comuns.
Sua tabela de fatos pode ter apenas uma chave de distribuição. Qualquer tabela que ingressar em outra chave não é disposta com a tabela de fatos. Escolha uma dimensão para disposição com base na frequência em que ela é ingressada e no tamanho das linhas de junção. Designe a chave primária da tabela de dimensões e a chave estrangeira correspondente da tabela de fatos como a DISTKEY.
-
Escolha a maior dimensão com base no tamanho do conjunto de dados filtrado.
Como somente as linhas que são usadas na junção precisam ser distribuídas, considere o tamanho do conjunto de dados após a filtragem e não apenas o tamanho da tabela.
-
Escolha uma coluna com alta cardinalidade no conjunto de resultados filtrados.
Se você distribui uma tabela de vendas em uma coluna de data, por exemplo, provavelmente você obterá uma distribuição de dados razoavelmente uniforme, a não ser que a maioria de suas vendas sejam sazonais. Entretanto, se você usa um predicado restrito por intervalo para filtrar um período de data curto, a maioria das linhas filtradas ocorrem em um conjunto limitado de fatias e o workload da consulta é distorcido.
-
Alterar algumas tabelas de dimensões para usar a distribuição ALL.
Se uma tabela de dimensão não pode ser disposta com a tabela de fato ou outras tabelas de junção importantes, você pode melhorar a performance da consulta significativamente ao distribuir toda a tabela para todos os nós. O uso de distribuição ALL multiplica as exigências de espaço de armazenamento e aumenta os tempos de carregamento e operações de manutenção, portanto você deve considerar todos os fatores antes de optar pela distribuição ALL.
Para que o Amazon Redshift escolha o estilo de distribuição apropriado, especifique AUTO
para o estilo de distribuição.
Para obter mais informações sobre a escolha de estilos de distribuição, consulte Distribuição de dados para otimização de consultas.