bom dia Pessoal, estive analisando e testando alguns updates, e pude verificar que se deixar a tabela com 50 campos, a performance do update melhora em de uns 20min para 7min.
Isso depende das colunas que você retirou. Quanto maiores as colunas, maior a diferença.
dropando os indices melhora mais ainda, neste caso me leva a algumas questoes: 1- esse campo não participa de nenhum indice, mas por que dropando os outros ele melhora no desempenho?
Toda atualização que envolver um campo com índice vai criar novas entradas no índice. Logo, se você dropar colunas que participam de índices, o desempenho aumenta. Dropar colunas aumentará o desempenho de qualquer forma.
2- tabelas com menos campos tem melhor desempenho mesmo com a mesma quantidade de registros?
Sim.
3- quando faço esse update fisicamente ele altera todos os blocos da tabela toda?
Não é bem assim que funciona. o UPDATE cria uma nova tupla para cada tupla envolvida, deixando as antigas "mortas" pelo mecanismo de MVCC do PostgreSQL. Elas são reaproveitadas pelo (auto)VACUUM.
[]s __________________________________ Flavio Henrique A. Gurgel Líder de Projetos Especiais Consultoria, Projetos & Treinamentos 4LINUX Tel1: +55-11.2125-4747 ou 2125-4748 www.4linux.com.br email: [email protected] ______________________________ FREE SOFTWARE SOLUTIONS _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
