Определение фактических имен файлов таблиц в PostgreSQL на уровне файловой системы
Я использую следующий код для определения размера диска каждой таблицы в моей базе данных в postgresql:
SELECT pg_size_pretty(pg_total_relation_size('"my_schema"."my_table"'));
Я предполагаю, что мне нужно найти фактические имена файлов каждой таблицы, чтобы получить точный размер диска. Кто-нибудь знает, как определить фактические имена файлов на уровне файловой системы?
1 ответ:
Что-то вроде этого:
select t.relname, current_setting('data_directory')||'/'||pg_relation_filepath(t.oid) from pg_class t join pg_namespace ns on ns.oid = t.relnamespace where relkind = 'r' and ns.nspname = 'public';
Я не на 100% это покажет правильный путь, если задействовано несколько табличных пространств.