Frenquentemente pergutam se é possível alterar o tamanho de bloco das tabelas PostgreSQL, até a versão 8.3 (atualmente estável) isso é possível mas é necessário alterar o código-fonte para isso. A próxima versão (8.4) que será lançada, provavelmente em Março de 2009, será mais fazer essa alteração de tamanho de bloco. Ainda é na etapa de compilação do PostgreSQL mas agora é parâmetro do ./configure. Além de alterar o tamanho de bloco das tabelas, será possível alterar o tamanho dos arquivos do WAL, do tamanho total de cada tabela gerenciada pelo TOAST(depois eu escrevo uma nota sobre o TOAST), etc.
Apesar de ainda de estas opções ainda estarem no estágio de compilação/instalação, essas novas funcionalidades permitem melhor ajuste do PostgreSQL para ambientes OLTP, Web ou Datawarehouse (vulgo BI).
No 8.4 você poderá alterar:
- Tamanho de bloco das tabelas: –with-blocksize -> Valores possíveis (1, 2, 4, 8, 16, 32, 64)
- Tamanho máximo das tabelas gerenciadas pelo TOAST: –with-segsize -> Valores em GigaByte (Até o limite do Sistema Operacional/Sistema de Arquivo)
- Tamanho dos blocos do WAL: –with-wal-blocksize -> Valores possíveis ( 1, 2, 4, 8, 16, 32, 64)
- Tamanho dos arquivos do WAL: –with-wal-segsize-> Valores possíveis (1, 2, 4, 8, 16, 32, 64)
Esses novos parâmetros ajudam a melhorar a perforamance do PostgreSQL ajustando so blocos conforme o tipo de uso do banco de dados, seja OLTP, BI ou WEB. De modo geral só mexe-se nesses parâmetros se tem bom conhecimento de banco de dados e Sistema Operacionais, mudar usando receitas de bolos pode ter alguns resultados desastrosos e culparem o banco de dados.
Observação importante é que se precisar alterar os tamanhos dos blocos do WAL ou dos arquivos do WAL não precisará criar novamente um cluster, somente recompilar e instalar novamente.






on Sep 15th, 2008 at 07:09
Hum… notícias realmente interessantes. Um detalhe que vale resaltar. Embora seja possível alterar o WAL sem recriar o cluster… provavelmente seus arquivos do WAL arquivados serão inúteis após esta alteração. Então uma tonelada de logs do WAL guardados em fita podem se tornar inúteis.
Mas realmente é uma boa notícia. O mais interessante é que está começando a sair testes comparativos mais sérios sobre a eficiência (ou não) deste tipo de ajuste. Se a eficiência for comprovada, pode ser que mais para frente tenhamos tablespaces com diferentes tamanhos de bloco como no Oracle…
on Sep 15th, 2008 at 22:46
Valeu pelo comentário. Vamos ver se consigo testar esses parâmetros e depois mandar para pgdg.