Как узнать размер базы данных postgresql
Перейти к содержимому

Как узнать размер базы данных postgresql

  • автор:

Как узнать размер базы данных postgresql

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

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

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

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

Добавить заметку
Версия для печати

Последние заметки
21.10.2023 Защита от подмены серверных TLS-сертификатов в результате MITM-атаки провайдером
15.10.2023 Уменьшение жёстко определённого размера окна приложения в формате AppImage
12.10.2023 Определение IP-адреса пользователя в Telegram через голосовой вызов
14.09.2023 Установка в мобильной версии Firefox любого расширения от десктоп-версии
10.09.2023 Часто используемые параметры sysctl, касающиеся настройки сети в Linux
09.08.2023 Запуск Linux на Android-телефоне с SD-карты без перепрошивки
18.04.2023 Перевод шифрованного раздела на LUKS2 и более надёжную функцию формирования ключа
31.03.2023 Пример правил nftables с реализацией port knoсking для открытия доступа к SSH
27.02.2023 Обновление сертификатов oVirt
20.11.2022 Решение проблемы со шрифтами в Steam после выставления времени после 2038 года
RSS | Следующие 15 записей >>

PostgresPro

Inferno Solutions

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

Как узнать размер базы данных PostgreSQL?

Есть база PostgreSQL base , пользователь postgres . Как одной командой, не используя скриптов, получить размер базы?

Отслеживать
задан 13 ноя 2010 в 14:36
34.5k 25 25 золотых знаков 97 97 серебряных знаков 214 214 бронзовых знаков

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

В человеческом виде размер базы покажет обёртка pg_size_pretty

SELECT pg_size_pretty( pg_database_size( 'sample_db' ) ); pg_size_pretty ---------------- 36 GB 

Таким же макаром можно посмотреть и размер таблицы (с индексами)

SELECT pg_size_pretty( pg_total_relation_size( 'table' ) ); pg_size_pretty ---------------- 6341 MB 

Если нужно без индексов, тогда запрос другой:

# SELECT pg_size_pretty( pg_relation_size( 'table' ) ); pg_size_pretty ---------------- 1341 MB 

PostgreSQL. Как узнать размер базы данных и таблиц?

Узнать размер всех таблиц Запрос выведет размер всех таблиц в базе.

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; 

Совпадений по запросу » «

PostgreSQL: Размер таблиц и базы данных

Чтоб узнать размер всех таблиц схемы базы данных достаточно выполнить вот такой запрос:

select table_name, pg_size_pretty( pg_total_relation_size(table_name)) from information_schema.tables where table_schema = 'table_schema_name' and table_catalog = 'database_name';

Этот запрос вернет полный размер таблицы, включая индексы и данные TOAST. Чтоб узнать размер таблицы без индексов ( но включая TOAST, карту свободного места и карту видимости ) воспользуйтесь функцией pg_table_size. pg_relation_size() — чтоб узнать объём, который занимает на диске указанный слой (‘main’, ‘fsm’, ‘vm’, ‘init’) заданной таблицы или индекса. Про некоторые другие функции получения размера объектов можно почитать в документации.

Узнать размер баз данных на сервере:

select datname, pg_size_pretty(pg_database_size(datname)) from pg_database;

pg_size_pretty возвращает значение размера объектов в удобочитаемом для человека виде, например 36 MB. Однако можно использовать выше указанные функции напрямую. Тогда размер объектов вернется в байтах.

Поделиться ссылкой:

  • Послать ссылку другу по электронной почте (Открывается в новом окне)
  • Нажмите для печати (Открывается в новом окне)
  • Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне)
  • Нажмите, чтобы открыть на Facebook (Открывается в новом окне)
  • Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
  • Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
  • Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
  • Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *