Memnemonics fike’s Rotating Header Image

Como listar as maiores tabelas no PostgreSQL


 
   Nada como a necessidade para obrigar a fazermos coisas interessantes, não acham? Pois é, estava precisando levantar as maiores tabelas num PostgreSQL 8.3. Uma pesquisa rápida pela internet e não encontro nada que atenda a minha necessidade, por acaso o pgadmin3 estava aberto e vi que ele (pgadmin3) traz várias informações de uma tabela. Ainda não era o que queria, precisava listar todas e uma observada na tabela pgclass + uma função chamada pg_pretty_size conseguiria atender minha necessidade.

  Como?

pmanson:~# psql -U postgres -c "SELECT relname, pg_size_pretty(relpages*8192) as "tamanho" from pg_class order by relpages DESC limit 10;" base_exemplo

          relname          | tamanho
—————————+———
 estatistica               | 271 MB
 subacaoindicador          | 194 MB
 idx_estsessionusucpfsisid | 192 MB
 estatistica_pkey          | 101 MB
 idx_usucpfestdata         | 101 MB
 idx_sisidestdata          | 78 MB
 idx_usucpf                | 78 MB
 idx_estatistica_mnuid     | 56 MB
 idx_estdata               | 56 MB
 idx_sisid                 | 56 MB
(10 registros)

:)

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

5 Comments on “Como listar as maiores tabelas no PostgreSQL”

  1. #1 Alexsander
    on Mar 24th, 2008 at 16:58

    Se alguma tabela tiver mais que 2 Gb vai dar erro.
    Coloque um ::bigint no relpages, ficando assim:

    SELECT relname, pg_size_pretty(relpages::bigint*8192) as “tamanho” from pg_class order by relpages DESC limit 10;

  2. #2 fernando.ike
    on Mar 24th, 2008 at 17:39

    Opa,

    Valeu pela dica. :)

  3. #3 Fernando F.
    on Mar 27th, 2008 at 09:38

    Muito legal, valeu pela dica Ike.

  4. #4 Fernando Brombatti
    on Mar 28th, 2008 at 18:41

    E se o tamanho do bloco não for 8kb? Pegue das settings locais o tamanho do bloco do cluster corrente.

  5. #5 fernando.ike
    on Mar 29th, 2008 at 01:45

    Brombatti, não sei dizer. Mas sua dica é valida e só completa as informações de quem irá pesquisar. Valeu. :)

Leave a Comment

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word