PostgreSQL. Как узнать размер базы данных и таблиц?
> SQL > PostrgeSQLДата обновления: 23 мая 2024 г. Дата публикации: 23 мая 2024 г. Автор: Стрекаловский Александр
Для начала подключаемся к postgresql
psql -U postgres
Выбираем нужную базу
\c DatabaseName
Узнать размер 20-м самых больших таблиц
Запрос выводит 20 самых больших таблиц
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC
LIMIT 20;
Узнать размер всех таблиц
Запрос выведет размер всех таблиц в базе.
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC;
Узнать общий размер таблиц
Этот запрос показывает общий размер таблиц, включая все индексы в текущей базе данных:
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 20;
Размер базы данных
SELECT pg_size_pretty( pg_database_size( 'sample_db' ) );
Размер таблицы
SELECT pg_size_pretty( pg_total_relation_size( 'table' ) );
Размер всех баз данных на сервере
select datname, pg_size_pretty(pg_database_size(datname))
from pg_database;
Количество записей в таблице
SELECT count(*) FROM my_table;