The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Как посмотреть размер баз и таблиц ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Как посмотреть размер баз и таблиц ..."  +/
Сообщение от auto_tips (??), 05-Апр-06, 15:07 
Для сопоставления 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


URL:
Обсуждается: http://www.opennet.dev/tips/info/917.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Как посмотреть размер баз и таблиц в PostgreSQL"  +/
Сообщение от Den (??), 05-Апр-06, 15:07 
Вот это:
(relpages * 8192 / (1024*1024))

АБСОЛЮТНО!!! неправильно, хотя везде это пример упоминают. Дело в том, что при достаточно большом размере (порядка нескольких гигабайт) происходит переполнение и в результате получается полная чушь.

Арифметику учили?
* 8192 / (1024*1024) == / 128

Итого:

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

Ответить | Правка | Наверх | Cообщить модератору

2. "Как посмотреть размер баз и таблиц в PostgreSQL"  +/
Сообщение от cubite (?), 14-Мрт-07, 23:02 
select pg_size_pretty(pg_database_size('database_name'));
select pg_size_pretty(pg_relation_size('table_name'));
Ответить | Правка | Наверх | Cообщить модератору

3. "Как посмотреть размер баз и таблиц в PostgreSQL"  +/
Сообщение от Константинemail (??), 06-Июн-09, 22:06 
Условие "WHERE relname NOT LIKE 'pg%'" нужно убрать, т.к. вы не увидите toast-таблиц, где распологаются, например, text-поля пользовательских таблиц, которые соответственно не попадают в размер самой таблицы.
Ответить | Правка | Наверх | Cообщить модератору

4. "Как посмотреть размер баз и таблиц в PostgreSQL"  +/
Сообщение от AlexGor (??), 19-Окт-09, 10:50 
-- размер таблиц:
SELECT
schemaname||'.'||tablename AS full_tname,
pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS total_usage,
pg_size_pretty((pg_total_relation_size(schemaname||'.'||tablename) - pg_relation_size(schemaname||'.'||tablename))) AS external_table_usage
FROM pg_catalog.pg_tables
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;

-- размер базы:
SELECT pg_size_pretty(SUM(pg_total_relation_size(schemaname||'.'||tablename))::bigint) AS grand_total
FROM pg_catalog.pg_tables

Ответить | Правка | Наверх | Cообщить модератору

5. "Как посмотреть размер баз и таблиц в PostgreSQL"  +/
Сообщение от Тимофейemail (??), 23-Янв-17, 14:16 
Знатоки, подскажите пожалуйста.
Есть таблица:
№ записи - ИД компании - Информация
Как посчитать объем дискового пространства, занимаемого информацией определенной компании?
Спасибо.
Ответить | Правка | Наверх | Cообщить модератору

6. "Как посмотреть размер баз и таблиц в PostgreSQL"  +/
Сообщение от bammbremail (?), 15-Янв-20, 22:57 
..."Для просмотра общего размера баз можно использовать скрипт:"

Спустя 15 лет, в Centos и от root-а работает это

#!/bin/sh
oid2name="sudo -u postgres /usr/pgsql-10/bin/oid2name -q"
pg_data_path="/var/lib/pgsql/10/data/base"

{
   $oid2name| while read oid name space; do
       size=`du -sh $pg_data_path/$oid|cut -f1`
       echo "$size $name"
   done
}|sort -rh| column -t

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру