Além disso, desta maneira você acaba armazenando menos registros na memória, podendo recorrer ao disco, o que acaba se tornando um gargalo.
É onde você controla as filas de execução, definindo shares do hardware para cada uma delas, bem como o tempo de execução.
Você pode definir até 8 filas de execução. Só tenha cuidado porque a porcentagem de hardware que você define para cada uma é dedicada, ou seja, imagine que você definiu 4 filas, cada uma com 25%. Se apenas uma fila estiver com queries em execução, ela só poderá/conseguirá usar os 25% dela, mesmo que 75% esteja “disponível”.
Uma recomendação é definir 4 filas com 20% cada para query e outras duas filas com 10% cada para processos de ETL.
O recurso de criação de tabelas temporárias é algo amplamente usado e de fato muito bom! Só que deve-se tomar um cuidado ao criá-las.
Quando ela é criada como “CREATE TEMP TABLE … AS SELECT …” o Redshift utiliza por default o estilo Even de distribuição, ou seja, se você utilizar uma coluna para filtro, todos os slices serão lidos.
Além disso, ele cria a tabela sem nenhuma compressão. Por isso, é recomendado criar primeiro a estrutura da tabela temporária “CREATE TEMP TABLE table-name (field1 datatype encode, ….) DISTKEY(field) SORTKEY(field)”, desta maneira você consegue não somente definir as chaves e estilo de distribuição, como também as chaves de ordenação. Por default o Redshift aplica o encoding zstd, mas você também consegue definir.