[PostgreSQL] – Tamanho das Tabelas no Banco de Dados



Direcionamento de carreira!


PostgreSQL
Em muitos casos é preciso saber o espaço em que as tabelas do banco de dados estão utilizando em disco, para fins de monitoramento e decisão de estruturação de banco. Para tal tarefa no PostgreSQL o comando abaixo resolve o problema.
SELECT esquema, tabela,
       pg_size_pretty(pg_relation_size(esq_tab)) AS tamanho,
       pg_size_pretty(pg_total_relation_size(esq_tab)) AS tamanho_total
  FROM (SELECT tablename AS tabela,
               schemaname AS esquema,
               schemaname||'.'||tablename AS esq_tab
          FROM pg_catalog.pg_tables
         WHERE schemaname NOT
            IN ('pg_catalog', 'information_schema', 'pg_toast') ) AS x
 ORDER BY pg_total_relation_size(esq_tab) DESC;
A coluna tamanho mostra o tamanho que os registros (tuplas) da tabela está ocupando no disco, e a coluna tamanho_total inclui também os TOASTs e os índices associados à tabela.
Com essa consulta, é possível inclusive montar scripts (em shellscript, perl, python, groovy, etc..) de monitoramento do banco, por exemplo: Caso a tabela tal, ou a soma de todas as tabelas chegar a X MB, envie um e-mail de alerta. Outra utilização seria de geração de indicadores para análise de tendência da expansão do banco.

Emerson S. Gaudêncio

Emerson dos Santos Gaudêncio é Analista de Sistemas/ Banco de dados, atualmente trabalha como Analista de Sistemas/Desenvolvedor PL/SQL Oracle na Ábaco Tecnologia da Informação - Cuiabá-MT, Formado em Analise e Desenvolvimento de Sistemas – UNIRONDON-MT; Apaixonado por Tecnologia de banco de dados como o SGBD Oracle, MySQL , MS SQL Server e PostgreSQL. Gosto de musica e nunca dispenso tocar uma guitarra e violão com os Amigos. Blog pessoal: http://blog.gaudencio.net.br - Artigos sobre Banco de dados, Tecnologias de Redes e Servidores Linux e Windows.

More Posts - Website