Обсуждение: 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