1.1, Den (??), 15:07, 05/04/2006 [ответить]
| +/– |
Вот это:
(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; | |
1.2, cubite (?), 23:02, 14/03/2007 [ответить]
| +/– |
select pg_size_pretty(pg_database_size('database_name'));
select pg_size_pretty(pg_relation_size('table_name'));
| |
1.3, Константин (??), 22:06, 06/06/2009 [ответить]
| +/– |
Условие "WHERE relname NOT LIKE 'pg%'" нужно убрать, т.к. вы не увидите toast-таблиц, где распологаются, например, text-поля пользовательских таблиц, которые соответственно не попадают в размер самой таблицы.
| |
1.4, AlexGor (??), 10:50, 19/10/2009 [ответить]
| +/– |
-- размер таблиц:
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
| |
1.5, Тимофей (??), 14:16, 23/01/2017 [ответить]
| +/– |
Знатоки, подскажите пожалуйста.
Есть таблица:
№ записи - ИД компании - Информация
Как посчитать объем дискового пространства, занимаемого информацией определенной компании?
Спасибо.
| |
1.6, bammbr (?), 22:57, 15/01/2020 [ответить]
| +/– |
..."Для просмотра общего размера баз можно использовать скрипт:"
Спустя 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
| |
|