Olá,

2010/1/26 letgaude <letga...@gmail.com>

>
> Ola,
>
> Preciso identificar quanto em bytes cada campo de uma tabela consome de
> espaço em disco, para poder fazer uma previsão de calculo para
> armazenamento
> de dados no servidor . A tabela é :
>
> CREATE TABLE public.teste (
>  sequencial BIGSERIAL,
>  chave          VARCHAR(44) NOT NULL,
>  valor1         NUMERIC(15,2) DEFAULT 0 NOT NULL,
>  valor2         NUMERIC(16,4) DEFAULT 0 NOT NULL,
>  valor3         NUMERIC(16,4) DEFAULT 0 NOT NULL,
>  indicador  CHAR(1),
>  tipo           INTEGER
> ) WITHOUT OIDS;
>
> No meu entendimento, esta tabela teria 72 bytes (44 para o varchar, 9 para
> cada numerico e 1 para o char) o que me daria uma conta simples: 72 bytes *
> 300.000 (qtde de registros q eu projetaria nesta tabela) = 21.600.000
> bytes.
>
> As funções do postgres (pg_relation_size()) só me retornam dados diferentes
> de 0 bytes, caso eu tenho inserido algum registro na tabela. E fazendo isto
> ele me retorna 8192 bytes para 1 registro. Alguem pode me explicar que
> calculo o Postgres faz para me retornar este valor ?
>

Para saber o tamanho de cada coluna você pode usar pg_column_size. O
postgres usa páginas de 8Kb para armazenar as informações. O parâmetro que
indica é BLCKSZ que é configurado no arquivo pg_config_manual.h e após
alterado é necessário recompilar o PG.

Para ver este valor você pode realizar a seguinte consulta:

SELECT * FROM pg_settings WHERE name='block_size';

>
> Porque eu não posso simplesmente me basear na conta (tamanho da tabela *
> qtde de registros) ?
>
> Obrigada
>
>
>
> --
> View this message in context:
> http://old.nabble.com/Tamanho-em-bytes-de-Tabela-Vazia-tp27327190p27327190.html
> Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a