Para obter o tamanho especifico de uma tabela, deve ser usado a função pg_relation_size(), como exemplo vou buscar o tamanho de uma tabela exemplo autor_principal do database filme_verao.
select pg_relation_size('autor_principal');
pg_relation_size
------------------
16384
O resultado vem em bytes, e como bom programa, há como deixar o seu resultado mais humanizado, com uma melhor leitura, para isso pode ser usado a função pg_size_pretty(), que irá mostrar os dados em kB, mB, Gb, ou TB da forma mais apropriada que for.
SELECT
pg_size_pretty (pg_relation_size('autor_principal'));
pg_size_pretty
----------------
16 kB
(1 row)
Agora para obter o tamanho de um database vamos usar a função pg_database_size(), e nesse exemplo vou já me utilizar da função pg_size_pretty pois geralmente um database o seu tamanho é muito grande.
SELECT
pg_size_pretty (
pg_database_size ('filme_verao')
);
pg_size_pretty
----------------
157 GB
(1 row)
Ou vamos mostrar de todos seus databases.
SELECT
pg_database.datname,
pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM pg_database;
datname | size
----------------+---------
postgres | 7055 kB
template1 | 7055 kB
template0 | 6945 kB
filme_verao | 157 GB