Re: [pgbr-geral] Duvida com Vacuum Full
tenho uma duvida: É possivel identificar quais tabelas do banco estao inchadas, ou seja, que sofreram muitas alteracoes e que necessitam de https://wiki.postgresql.org/wiki/Show_database_bloat vacuum full ? Normalmente, nunca, mas há casos excepcionais. []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] estimando tamanho da base
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? 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 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 Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] estimando tamanho da base
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
Re: [pgbr-geral] estimando tamanho da base
2014-08-20 8:22 GMT-03:00 Alessandro Lima grandegoia...@gmail.com: 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? Sim, é normal. Isso porque você está desconsiderando vários fatores. Primeiro, as tuplas numa tabela (vamos desconsiderar índices por enquanto) estão dispostas em páginas de 8KB, sendo que cada página possui cabeçalho (header) e pointeiros para as páginas, algo como: ([header][ptr][ptr][ptr] ... espaço vazio ... [tupla][tupla][tupla]) Acima é possível que uma página completamente cheia ainda tenha um espaço em branco, seja devido à nenhuma tupla+ptr caber nesse espaço ou devido ao fill_factor (que por padrão não alteraria). Além de espaço sendo ocupados por tuplas mortas, que serão marcadas pelo VACUUM tornando-se espaço vazio e que só serão ocupados em novas operações de INSERT ou UPDATE. Segundo, temos que considerar também que cada tupla possui também um cabeçalho. O cabeçalho ocupa ao menos 27 bytes, geralmente vai ser mais devido ao alinhamento [1] e ao bitmap de valores NULLs. Detalhes em [2]. Agora, se formos considerar índices, a coisa complica bem mais. Pensando em B-trees temos várias sobrecargas, além dos cabeçalhos, cada valor de um nó folha (onde estão os dados) tem um ponteiro para a tupla (cerca de 6-8 bytes se não me engano), tem também os nós intermediários (ao menos o nó raiz existirá) e ainda o fill_factor dos índices que é menor por padrão. Fora inchaço. 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 Além dos overheads que comentei acima, tem mais o alinhamento de bytes [1]. Veja também a apresentação do Bruce Monjian PostgreSQL Internals Through Pictures, em [3]. 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 Você considerou tabelas de catálogo? Não sei como o pgAdmin calcula isso, então fica difícil dizer. Eu diria que as duas consultas abaixo deveriam retornar valores bem próximos: SELECT pg_size_pretty(sum(pg_relation_size(oid))) FROM pg_class; SELECT pg_size_pretty(pg_database_size(current_database())); Como deve ter notado, não são contas triviais. Na verdade não são exatas, pois muitas coisas temos que explorar mais baixo nível para encontrar. Algumas contribs como pageinspect e freespacemap ajudam nisso. [1] http://en.wikipedia.org/wiki/Data_structure_alignment [2] http://www.postgresql.org/docs/current/static/storage-page-layout.html [3] http://www.postgresql.org/files/developer/internalpics.pdf Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] estimando tamanho da base
Obrigado pelas explicações!!! Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Instalacao Postgresql via rpm CentOS
Ola a todos, Tenho um servidor CentOS 5.10 32Bits com o postgresql 9.2.1 compilado(instalado a partir dos fontes). Estou querendo atualizar para a versao 9.3, porem com pacotes rpm. Baixei, com curl, o arquivo rpm do site postgresql.org e tentei instalar, mas aparece a mensagem: rpm -ivh pgdg-centos93-9.3-1.noarch.rpm Preparando... ### [100%] o pacote pgdg-centos93-9.3-1.noarch já está instalado Quando tento desinstalar, aparece: rpm -e pgdg-centos93-9.3-1.noarch.rpm erro: o pacote pgdg-centos93-9.3-1.noarch.rpm não está instalado A ideia é instalar a 9.3 em outra porta, migrar os bancos e somente depois de funcionar corretamente, parar a 9.2.1 Como driblar este erro e instalar o 9.3? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Instalacao Postgresql via rpm CentOS
Ola a todos, Tenho um servidor CentOS 5.10 32Bits com o postgresql 9.2.1 compilado(instalado a partir dos fontes). Estou querendo atualizar para a versao 9.3, porem com pacotes rpm. Baixei, com curl, o arquivo rpm do site postgresql.org e tentei instalar, mas aparece a mensagem: rpm -ivh pgdg-centos93-9.3-1.noarch.rpm Preparando... ### [100%] o pacote pgdg-centos93-9.3-1.noarch já está instalado Este pacote só adiciona o repositório ao CentOS. Quando tento desinstalar, aparece: rpm -e pgdg-centos93-9.3-1.noarch.rpm erro: o pacote pgdg-centos93-9.3-1.noarch.rpm não está instalado Isso é bem estranho. Já tentou limpar o cache de pacotes do RPM e recriar a base? A ideia é instalar a 9.3 em outra porta, migrar os bancos e somente depois de funcionar corretamente, parar a 9.2.1 Isto é perfeitamente possível. Como driblar este erro e instalar o 9.3? O erro é do sistema operacional e é bem bizarro. Está tudo atualizado? Por que não aproveita que vai atualizar o PostgreSQL e vai pra uma versão mais nova do CentOS, com melhor suporte, que possa usar o yum? []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Usuário não superuser modificar um owner de um objeto
A dúvida é a seguinte: Tem alguma regra onde possamos dizer que um login/role (que não é superuser) tem direito de mudar um owner de um objeto? Tipo GRANT CHANGE OWNER TO user/role Atenciosamente, Luiz Carlos ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Usuário não superuser modificar um owner de um objeto
Complementando: Ou que pelo menos que crie o objeto com o owner sendo o do database? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Usuário não superuser modificar um owner de um objeto
2014-08-20 18:46 GMT-03:00 Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com: Tem alguma regra onde possamos dizer que um login/role (que não é superuser) tem direito de mudar um owner de um objeto? Apenas o próprio proprietário ou um superusuário pode transferir a propriedade de um objeto. Além disso o proprietário só pode transferir para outra role que este seja membro. Fora isso, me parece um pouco estranho você querer fazer isso. Qual seria a razão? Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Usuário não superuser modificar um owner de um objeto
On Wed, Aug 20, 2014 at 6:47 PM, Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com wrote: Ou que pelo menos que crie o objeto com o owner sendo o do database? Bom, se o usuário que está criando o objeto for membro do proprietário da base é possível. Mas isso também implica que este terá as permissões deste usuário, além de poder reverter e retomar a propriedade do objeto. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral