@Michael_29
Студент 3 курса, специальность- техник-программист

Какой запрос нужно ввести для определения количества занимаемой памяти в Postgre?

select table_schema "table name", sum(data_length+index_length)/1024/1024 "Data Base Size in MB" from information_schema.TABLES GROUP BY table_schema;

ОШИБКА: столбец "data_length" не существует
Нашел такой вариант ответа на мой вопрос, только в данной СУБД (запрос работает в воркбенче) в таблице information_schema.TABLES не содержится нужная информация. Какой запрос нужно ввести?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
BorLaze
@BorLaze
Java developer
Не знаю, где ты нашел этот запрос, но ошибку тебе пишет правильно - нет такого поля в этой таблице.

А вообще, запрос "postgres get table size" в числе первых выдает ссылку на postgresqltutorial.com, и там есть такой вот чудесный запрос (5 самых крупных таблиц в текущей базе):
SELECT
    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 5;


Собственно, там много полезных запросов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы