PostgreSQL Object Size

From Wikistix

SQL to find the sizes of objects in PostgreSQL (postgres), with the following example taken from a mediawiki database.

wikidb=# select t2.nspname as nspname, t1.relname, t1.relfilenode, t1.relpages, t1.relkind from pg_class t1, pg_namespace t2 where t1.relnamespace = t2.oid order by relpages desc limit 10;
  nspname   |           relname            | relfilenode | relpages | relkind 
------------+------------------------------+-------------+----------+---------
 mediawiki  | archive                      |       16487 |      134 | r
 mediawiki  | pagecontent                  |       16739 |      127 | r
 mediawiki  | l10n_cache                   |       16621 |      104 | r
 pg_catalog | pg_attribute                 |           0 |       75 | r
 pg_catalog | pg_proc                      |           0 |       62 | r
 pg_toast   | pg_toast_16691               |       16695 |       61 | t
 pg_catalog | pg_depend                    |       12174 |       54 | r
 mediawiki  | l10n_cache_lc_lang_key       |       17807 |       48 | i
 pg_catalog | pg_statistic                 |       12043 |       45 | r
 mediawiki  | archive_name_title_timestamp |       17773 |       43 | i
(10 rows)