Criação de uma tabela de preparação temporária
A tabela de preparação é uma tabela temporária que guarda todos os dados que serão usados para fazer alterações na tabela de destino, incluindo atualizações e inserções.
Uma operação de mesclagem requer uma junção entre a tabela de preparação e a tabela de destino. Para posicionar as linhas da mesclagem, defina a chave de distribuição da tabela de preparação na mesma coluna que a chave de distribuição da tabela de destino. Por exemplo, se a tabela de destino usa uma coluna de chave estrangeira como chave de distribuição, use a mesma coluna para a chave de distribuição da lista de preparação. Se você cria uma tabela de preparação usando um comando CREATE TABLE LIKE, a tabela de preparação herda a chave de distribuição da tabela pai. Se você utiliza uma instrução CREATE TABLE AS, a nova tabela não herda a chave de distribuição. Para obter mais informações, consulte Distribuição de dados para otimização de consultas
Se a chave de distribuição não é a mesma que a chave primária e a chave de distribuição não é atualizada como parte da operação de mesclagem, adicione um predicado de junção redundante nas colunas de chave de distribuição para permitir uma junção colocada. Por exemplo:
where target.primarykey = stage.primarykey and target.distkey = stage.distkey
Para verificar se consulta usará uma junção colocada, execute a consulta com EXPLAIN e verifique DS_DIST_NONE em todas as junções. Para obter mais informações, consulte Avaliação do plano de consulta