alguem ai teria dicas de particionamento de tabelas?
um amigo meu tem uma tabela fato de 100gb, o proprio tamanho fisico da tabela esta causando problemas de desenpenho por vacuum e indexacao;
parece que no postgres soh poderia usar como criterio de particao, uma coluna que faz parte da chave primaria.. coisa que no oracle eh dinamico;
Da pra usar particionamento por HASH ao invés de RANGE ou LIST. Continua exigindo a coluna de partição na PK, apenas para a distribuição uniforme dos dados. Pode ser que ajude a aliviar o problema do bloat no seu caso.
conversei com ele hj, vai incluir a coluna na pk, ele nao se importou em fazer milhares de alteracoess referenciais euahueh
Parece um trabalho simples (principalmente com a ajuda do Claude Code, por exemplo), mas que exige planejamento por causa da unicidade que a PK exige. No mais, uso postgres há 25 anos e pude acompanhar de perto a extrema evolução do particionamento declarativo desde o seu tímido início no Post 10 até sua excelente maturidade agora no Post 18 👏.
Hoje aguardo a maturidade do OrioleDB para que tenhamos uma alternativa ao modelo de armazenamento do Post e possamos mitigar o vacuum em determinados cenários.
Infelizmente, dá para converter diretamente uma tabela existente para particionada no PostgreSQL, da forma que você gostaria.
Uma coisa que testaria de forma resumida:
Checar as dependencias que a tabela possui.
Criar uma nova particionada e ir migrando os dados(pode ter um trigger para ir inserindo os registros novos até o momento final de virada).
Quando as duas estiverem sincronizadas, analisar o momento de menor utilização e renomea-las.
Recompilar, recriar objetos depedentes que ficaram invalidos.
saquei, vlw