Connaître le nombre d'octets utilisés pour stocker une valeur en particulier :

base=# SELECT pg_column_size('1');
 pg_column_size
----------------
              2

base=# SELECT pg_column_size(1);
 pg_column_size
----------------
              4

Connaître l'espace disque utilisé par une database complète :

base=# SELECT pg_database_size('base');
 pg_database_size
------------------
     128254784136

Connaître l'espace disque utilisé sur un tablespace :

base=# SELECT pg_tablespace_size('data2');
 pg_tablespace_size
--------------------
        53866725380

Connaître la taille d'une table ou d'un index par son nom :

base=# SELECT pg_relation_size('my_table');
 pg_relation_size
------------------
      10714234880

Connaître la taille représentée par une table, en incluant toutes les données liées (index, toast) :

base=# SELECT pg_total_relation_size('my_table');
 pg_total_relation_size
------------------------
            24756928512

Naturellement les octets ne sont pas le moyen le plus facile de lire une représentation d'un volume de données, il existe heureusement la commande pg_size_pretty(int) qui permet d'obtenir des chiffres humainement lisibles :

base=# SELECT pg_size_pretty(pg_total_relation_size('my_table'));
 pg_size_pretty
----------------
 23 GB

Enfin, une requête qui vous donne un rapide aperçu de l'ensemble de vos données ... à utiliser sans modération :

SELECT schemaname, tablename, tablespace, pg_size_pretty(taille) AS taille_table, pg_size_pretty(taille_totale) AS taille_totale_table
  FROM (SELECT *, 
               pg_relation_size(schemaname || '.' || tablename) AS taille, 
               pg_total_relation_size(schemaname || '.' || tablename) AS taille_totale
          FROM pg_tables) AS tables
 ORDER BY taille_totale DESC;