Estive analisando os tamanhos das colunas, tabelas e base e alguns
valores não batem:

1- uma tabela com 27435 registros com índice (integer 4 bytes) consome
616KB, sendo que 27435 x 4B = 107KB, esta diferença (overhead) é normal?
tem alguma fórmula matemática para calcular o tamanho de índices?

Além do tamanho dos dados em si, você tem que considerar que existem bytes extras de visibilidade, identificador de tuplas, entre outros.

2- Somando o tamanho (informado pelo pgadmin) das colunas:
integer:,média 4B
varchar: média 14B
varchar: média 19B
varchar: média 12B
----------------------------
total: média 49B
27435 x 49B = 1,28MB, o pgadmin informa que a tabela (sem índices)
consome 2,18MB

Você tem que também considerar que os dados são armazenados em páginas de 8 kiB (por padrão). As páginas possuem espaço vazio propositalmente e esse espaço é bem variável.

3- Somando todas as tabelas (incluindo toast e índices) informados pelo
próprio pgadmin, o tamanho seria de 3,1MB mas o tabanho da base completa
é de 9.56MB

Considere aqui também o "inchaço". Tuplas mortas, dados que foram removidos ou atualizados, também ocupam espaço.

Resumindo, a conta não é direta como está fazendo. O ideal é popular uma tabela com alguns de seus dados e computar o espaço médio ocupado usando as funções apropriadas, o que o PgAdmin faz pra você e mostra na interface gráfica.

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a