5

Команда для определения размера базы данных в Postgres

11

При попытке узнать размер всех баз данных в PostgreSQL, я столкнулся с проблемой, что команда, которую я использую для получения размера конкретной базы данных, выглядит следующим образом:

select pg_database_size('название_базы_данных');

Мне нужна команда, которая позволит получить размеры всех баз данных сразу. Как можно это сделать?

5 ответ(ов)

3

Вы можете получить имена всех баз данных, к которым у вас есть доступ, из системной таблицы "pg_database". Просто примените функцию к именам, как показано ниже.

SELECT t1.datname AS db_name,  
       pg_size_pretty(pg_database_size(t1.datname)) AS db_size
FROM pg_database t1
ORDER BY pg_database_size(t1.datname) DESC;

Если вы планируете, чтобы вывод воспринимался машиной, а не человеком, вы можете убрать функцию pg_size_pretty().

2

Чтобы узнать размер базы данных и размер таблицы в PostgreSQL, вы можете использовать следующие SQL-запросы:

  1. Размер базы данных:
SELECT pg_size_pretty(pg_database_size('Имя_базы_данных'));

Замените Имя_базы_данных на фактическое название вашей базы данных. Этот запрос вернет размер базы данных в удобочитаемом формате (например, в кБ, МБ или ГБ).

  1. Размер таблицы:
SELECT pg_size_pretty(pg_relation_size('имя_таблицы'));

Не забудьте заменить имя_таблицы на название вашей таблицы. Этот запрос покажет размер конкретной таблицы в удобочитаемом формате.

Эти команды позволяют быстро и легко определить размеры базы данных и отдельных таблиц в PostgreSQL.

0

Команда

SELECT pg_size_pretty(pg_database_size('имя базы данных'));

возвращает общий размер указанной базы данных, однако, как вы правильно заметили, получить размер всех баз данных на сервере с помощью одного запроса не получится.

Тем не менее, вы можете использовать следующий код:

DO
$$
DECLARE
r   RECORD;
db_size TEXT;
BEGIN
FOR r IN
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size := (SELECT pg_size_pretty(pg_database_size(r.datname)));

RAISE NOTICE 'База данных: %, Размер: %', r.datname, db_size;

END LOOP;
END;
$$

Этот фрагмент кода создаёт анонимный блок, который проходит по всем базам данных, исключая шаблонные, и выводит их названия и размеры в читаемом формате с помощью команды RAISE NOTICE.

0

Да, в PostgreSQL есть команда для получения размера базы данных. Вы можете использовать следующий запрос:

SELECT pg_database.datname as "имя_базы", pg_size_pretty(pg_database_size(pg_database.datname)) AS размер_в_MB FROM pg_database ORDER BY размер_в_MB DESC;

Этот запрос вернёт список всех баз данных с их размерами, отсортированный по размеру в порядке убывания.

0

Чтобы узнать размер базы данных в pgAdmin, выполните следующие шаги:

  1. Запустите pgAdmin и подключитесь к серверу.
  2. Нажмите на имя базы данных, которую вы хотите проверить.
  3. Выберите вкладку "Статистика" (Statistics). Внизу списка вы увидите размер базы данных.

Обратите внимание, что если вы перейдете к другой базе данных, вкладка "Статистика" останется открытой, что позволит вам легко просматривать размеры нескольких баз данных без лишних усилий. Если вы откроете список таблиц, вы также сможете увидеть все таблицы и их размеры.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь