Para uma tabela aleatória:
# select pg_relation_size(20306, 'main') as main,
pg_relation_size(20306, 'fsm') as fsm,
pg_relation_size(20306, 'vm') as vm,
pg_relation_size(20306, 'init') as init,
pg_table_size(20306), pg_indexes_size(20306) as indexes,
pg_total_relation_size(20306) as total;
main | fsm | vm | init | pg_table_size | indexes | total
--------+-------+------+------+---------------+---------+--------
253952 | 24576 | 8192 | 0 | 286720 | 196608 | 483328
(1 row)
A partir disso, você pode dizer a
pg_table_size
é a soma de todos os valores de retorno de pg_relation_size
. E pg_total_relation_size
é a soma de pg_table_size
e pg_indexes_size
. Se você quiser saber quanto espaço suas tabelas estão usando, use
pg_table_size
e pg_total_relation_size
para pensar sobre eles - um número é somente tabela e um número é tabela + índices. Verifique o layout do arquivo de armazenamento para obter algumas informações sobre o que
fsm
, vm
e init
quer dizer, e como eles são armazenados no disco.