Dashboard > СУБД > Home > Как посмотреть размер баз и таблиц в PostgreSQL > Просмотр
  СУБД Вход | Зарегистрироваться   Вариант для печати.  
  Как посмотреть размер баз и таблиц в PostgreSQL
Добавил(а) shixaro, последний раз редактировал(а) shixaro Jan 24, 2010
Метки: 
(None)

Для сопоставления OID номеров и имен баз и таблиц в contrib есть утилита oid2name.

Для просмотра размера таблиц для текущей базы:

   SELECT relname AS name, relfilenode AS oid, (relpages * 8192 / (1024*1024))::int as size_mb, reltuples  as count 
      FROM pg_class 
      WHERE relname NOT LIKE 'pg%' 
      ORDER BY relpages DESC;

Для просмотра общего размера баз можно использовать скрипт:

   #!/bin/sh
   oid2name=/usr/local/pgsql/bin/oid2name
   pg_data_path=/usr/local/pgsql/data/base

   {
      $oid2name| grep '='| while read oid delim name; do
          size=`du -s $pg_data_path/$oid|cut -f1`
          echo "$size $name"
      done
   }|sort -rn

Другой вариант просмотра размера базы:

select pg_database_size('имя базы');

Размер таблицы:

select select pg_relation_size('имя таблицы');

Полный размер таблицы с сопутствующих индексов.

select pg_total_relation_size('имя таблицы');

Размер столбцов

select pg_column_size('имя стобца') from 'имя таблицы'; 

Состояние всех настроек можно посмотреть через функцию pg_show_all_settings().

-------------------------------------------------
Передрано с http://www.opennet.ru/tips/info/917.shtml

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5 Build:#805 Apr 26, 2007) - Запрос Bug/feature - Связаться с администраторами