Netezza

Performance no Netezza: distribuição, zone maps e cargas rápidas

PG Monitoring Team May 08, 2026 7 min de leitura

O Netezza premia um instinto completamente diferente de um banco em linha como o PostgreSQL. Não há índices para ajustar; a performance é decidida quase inteiramente por como seus dados estão espalhados pelo appliance. Acerte a chave de distribuição e as consultas voam em paralelo por todas as data slices; erre e o appliance inteiro espera por um único nó sobrecarregado.

Um modelo mental diferente: MPP

O Netezza é um appliance de processamento massivamente paralelo (MPP). Os dados são espalhados por muitas data slices, e cada slice processa sua parte em paralelo. Isso faz com que a decisão de tuning mais importante não seja um índice — é como os dados são distribuídos entre as slices.

A chave de distribuição decide tudo

CREATE TABLE sales (
  sale_id   BIGINT,
  customer_id BIGINT,
  amount    NUMERIC(12,2)
) DISTRIBUTE ON (customer_id);

Dois modos de falha a evitar:

  • Skew de dados — uma chave com poucos valores distintos (ou muitos nulos) empilha linhas em poucas slices. Essas slices viram o gargalo enquanto o resto fica ocioso. Verifique com nz_skew.
  • Redistribuição no join — se duas tabelas unidas usam chaves de distribuição diferentes, o Netezza precisa redistribuir uma pela rede em tempo de consulta. Co-localize os joins distribuindo ambas as tabelas pela coluna de junção.

Escolha uma coluna de alta cardinalidade muito usada em joins. O DISTRIBUTE ON RANDOM evita skew mas força redistribuição em todo join — use só para staging.

Zone maps substituem índices

O Netezza não tem índices tradicionais. Em vez disso, os zone maps registram automaticamente o mínimo/máximo de certas colunas por extent, permitindo pular extents que não podem casar com uma faixa do WHERE — conceitualmente idêntico ao BRIN do PostgreSQL. Funcionam melhor quando os dados estão naturalmente ordenados, então carregar em ordem de data deixa consultas por faixa de data muito mais rápidas.

GROOM e estatísticas

GROOM TABLE sales;              -- recupera espaço de linhas apagadas/atualizadas
GENERATE STATISTICS ON sales;  -- mantém o otimizador honesto

Como o VACUUM do PostgreSQL, updates e deletes deixam linhas logicamente apagadas até o GROOM recuperá-las. Estatísticas desatualizadas geram planos ruins — regenere-as após cargas grandes.

Carga em massa rápida com nzload

nzload -t sales -df /data/sales.csv \
  -delim ',' -skipRows 1 -maxErrors 100 \
  -bf /data/sales.bad

Carregue numa tabela já distribuída corretamente, na ordem natural do seu filtro por faixa mais comum, e depois rode GENERATE STATISTICS. Carregar primeiro e distribuir depois desperdiça uma passada inteira de redistribuição.

A constante: observe seu skew e suas estatísticas

Seja o engine Netezza, PostgreSQL ou outro, as verdades operacionais rimam: layout de dados desigual e estatísticas velhas tornam, silenciosamente, consultas rápidas em lentas. A disciplina de monitoramento que o PG Monitoring traz ao PostgreSQL — acompanhar mudanças de plano, pegar a regressão no dia em que aparece — vale diretamente para qualquer plataforma analítica que você rode ao lado.

Related Articles

Precisa resolver isso no seu ambiente PostgreSQL?

Fale diretamente com um especialista para avaliar o cenário, priorizar riscos e definir um plano de ação.

Fale conosco