Thread: What's eating my space ?
Hi,
I wander what is taking up my space on disk ...
btv=# SELECT pg_size_pretty(pg_database_size('btv_good'));
pg_size_pretty
----------------
10 GB
(1 row)
btv=# SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 15;
relation | total_size
--------------------------------------+------------
users.users | 703 MB
btv.material | 557 MB
btv_admin.material | 269 MB
btv_admin.block | 24 MB
btv.block | 20 MB
btv_admin.block_list | 9136 kB
btv.block_list | 9112 kB
multimedia.rel_image_collection2size | 2984 kB
multimedia.rel_image_collection2tag | 1024 kB
btv_admin.block_common | 976 kB
multimedia.image_collection | 936 kB
btv.block_common | 832 kB
users_admin.invalidate_notify | 752 kB
btv_admin.tv_program | 656 kB
btv.rel_material2tag | 592 kB
(15 rows)
The sum of biggest tables is not even close to the total db size .
Some index going wild ?
I wander what is taking up my space on disk ...
btv=# SELECT pg_size_pretty(pg_database_size('btv_good'));
pg_size_pretty
----------------
10 GB
(1 row)
btv=# SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 15;
relation | total_size
--------------------------------------+------------
users.users | 703 MB
btv.material | 557 MB
btv_admin.material | 269 MB
btv_admin.block | 24 MB
btv.block | 20 MB
btv_admin.block_list | 9136 kB
btv.block_list | 9112 kB
multimedia.rel_image_collection2size | 2984 kB
multimedia.rel_image_collection2tag | 1024 kB
btv_admin.block_common | 976 kB
multimedia.image_collection | 936 kB
btv.block_common | 832 kB
users_admin.invalidate_notify | 752 kB
btv_admin.tv_program | 656 kB
btv.rel_material2tag | 592 kB
(15 rows)
The sum of biggest tables is not even close to the total db size .
Some index going wild ?
Georgi Ivanov <georgi.r.ivanov@gmail.com> wrote: > Hi, > I wander what is taking up my space on disk ... > > btv=# SELECT pg_size_pretty(pg_database_size('btv_good')); > pg_size_pretty > ---------------- > 10 GB > (1 row) > > > btv=# SELECT nspname || '.' || relname AS "relation", > pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size" > FROM pg_class C > LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) > WHERE nspname NOT IN ('pg_catalog', 'information_schema') > AND C.relkind <> 'i' > AND nspname !~ '^pg_toast' > ORDER BY pg_total_relation_size(C.oid) DESC > LIMIT 15; > relation | total_size > --------------------------------------+------------ > users.users | 703 MB > btv.material | 557 MB > btv_admin.material | 269 MB > btv_admin.block | 24 MB > btv.block | 20 MB > btv_admin.block_list | 9136 kB > btv.block_list | 9112 kB > multimedia.rel_image_collection2size | 2984 kB > multimedia.rel_image_collection2tag | 1024 kB > btv_admin.block_common | 976 kB > multimedia.image_collection | 936 kB > btv.block_common | 832 kB > users_admin.invalidate_notify | 752 kB > btv_admin.tv_program | 656 kB > btv.rel_material2tag | 592 kB > (15 rows) > > The sum of biggest tables is not even close to the total db size . > Some index going wild ? Your sum doesn't contains indexes and toast-tables. Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) "If I was god, I would recompile penguin with --enable-fly." (unknown) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
On Thu, May 19, 2011 at 1:05 AM, Andreas Kretschmer <akretschmer@spamfence.net> wrote:
Your sum doesn't contains indexes and toast-tables.Georgi Ivanov <georgi.r.ivanov@gmail.com> wrote:
> Hi,
> I wander what is taking up my space on disk ...
>
> btv=# SELECT pg_size_pretty(pg_database_size('btv_good'));
> pg_size_pretty
> ----------------
> 10 GB
> (1 row)
>
>
> btv=# SELECT nspname || '.' || relname AS "relation",
> pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
> FROM pg_class C
> LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
> WHERE nspname NOT IN ('pg_catalog', 'information_schema')
> AND C.relkind <> 'i'
> AND nspname !~ '^pg_toast'
> ORDER BY pg_total_relation_size(C.oid) DESC
> LIMIT 15;
> relation | total_size
> --------------------------------------+------------
> users.users | 703 MB
> btv.material | 557 MB
> btv_admin.material | 269 MB
> btv_admin.block | 24 MB
> btv.block | 20 MB
> btv_admin.block_list | 9136 kB
> btv.block_list | 9112 kB
> multimedia.rel_image_collection2size | 2984 kB
> multimedia.rel_image_collection2tag | 1024 kB
> btv_admin.block_common | 976 kB
> multimedia.image_collection | 936 kB
> btv.block_common | 832 kB
> users_admin.invalidate_notify | 752 kB
> btv_admin.tv_program | 656 kB
> btv.rel_material2tag | 592 kB
> (15 rows)
>
> The sum of biggest tables is not even close to the total db size .
> Some index going wild ?
Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Since he used pg_total_relation_size(), according to the manual (http://www.postgresql.org/docs/current/interactive/functions-admin.html) indexes and toast should be included in the numbers reported for the tables. Unfortunately, I don't have any insight as to why pg_database_size() is returning a number roughly 5x larger than the sum of pg_total_relation_size() here.
-Eric
Eric McKeeth wrote: >>> I wander what is taking up my space on disk ... >>> >>> btv=# SELECT pg_size_pretty(pg_database_size('btv_good')); >>> pg_size_pretty >>> ---------------- >>> 10 GB >>> (1 row) [SELECT total size of all non-system tables] >>> The sum of biggest tables is not even close to the total db size . >>> Some index going wild ? >> >> Your sum doesn't contains indexes and toast-tables. >> > Since he used pg_total_relation_size(), according to the manual > (http://www.postgresql.org/docs/current/interactive/functions-admin.html ) indexes and toast should be > included in the numbers reported for the tables. Unfortunately, I don't have any insight as to why > pg_database_size() is returning a number roughly 5x larger than the sum of pg_total_relation_size() > here. Maybe it's the system tables. Try running the following query: SELECT SUM(pg_total_relation_size(C.oid)) AS "total_size", (N.nspname IN ('pg_catalog', 'information_schema')) AS "system_object" FROM pg_class C JOIN pg_namespace N ON (N.oid = C.relnamespace) LEFT OUTER JOIN pg_tablespace T ON (C.reltablespace = T.oid) WHERE C.relkind <> 'i' AND nspname !~ '^pg_toast' AND COALESCE(T.spcname, 'default') != 'pg_global' GROUP BY nspname IN ('pg_catalog', 'information_schema'); which will give you a sum of the sizes of all tables and their appendixes, grouped by system and non-system tables. I exclude global tables. On my 8.4 test database I get: total_size | system_object ------------+--------------- 376832 | f 5505024 | t (2 rows) For SELECT pg_database_size(current_database()) I get: pg_database_size ------------------ 5972260 (1 row) which comes pretty close. Yours, Laurenz Albe