Luis <luisico@gmail.com> writes:
> Hi,
>
> I have noticed a weird thing in different databases.
> When I run pg_database_size on some databases they report a pretty
> high value and if I take a look to all relations the sum of all of
> them is not even the half of the one reported by pg_database_size.
>
> Although I've seen this in different databases, this is a specific example.
>
>
> This are the sizes reported by this query:
>
> SELECT pg_size_pretty(pg_relation_size(C.oid)) AS "size"
> FROM pg_class C
> LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
> WHERE nspname NOT IN ('pg_catalog', 'information_schema')
> ORDER BY pg_relation_size(C.oid) DESC
> LIMIT 20;
>
Try just comparing what pg_database_size() tells you vs a sum() over
relpages*8192 (assuming standard page size). You may have to do some
casting to bigint depending how large your DB is.
> size
> ---------
> 99 MB
> 45 MB
> 10 MB
> 8528 kB
> 5280 kB
> 4352 kB
> 3184 kB
> 1304 kB
> 1152 kB
> 896 kB
> 544 kB
> 528 kB
> 336 kB
> 336 kB
> 336 kB
> 304 kB
> 296 kB
> 288 kB
> 272 kB
> 248 kB
>
> And this is the database size reported by this query:
> SELECT pg_size_pretty(pg_database_size('mydb'));
>
> pg_size_pretty
> ----------------
> 3539 MB
>
> I've read about LOBs but I don't seem to have any.
>
> Any idea where the space is being used?
>
> Thanks
--
Jerry Sievers
Postgres DBA/Development Consulting
e: postgres.consulting@comcast.net
p: 312.241.7800