I am newbie to postgresql. I have 162 GB on my database but when I check size of all tables, I approximately obtain 80 GB. I also see that I have 68GB of temporary files however I only found 2.4MB at postgres/data/base/pgsql_tmp.
Exactly how did you determine this?
I used this command and sum result for all database : SELECT pg_size_pretty(pg_total_relation_size('table_name'));
And this for complete database : SELECT pg_size_pretty(pg_database_size('Database Name'));
So where did the 68GB number for temporary files come from?
I don't measure this value by my own. I was disappointed by the gap between the two queries, so I checked pgAdmin 4 and I saw this value.
>I don't measure this value by my own. I was disappointed by the gap between the two queries, so I checked pgAdmin 4 and I saw this value.
I think your problem is that SELECT pg_size_pretty(pg_total_relation_size('table_name')); only looks at the current database
but SELECT pg_size_pretty(pg_database_size('Database Name')); looks at ALL databases.
Try this query instead to show individual database sizes.
SELECT oid, datname, pg_size_pretty(pg_database_size(datname))as size_pretty, pg_database_size(datname) as size, (SELECT pg_size_pretty (SUM( pg_database_size(datname))::bigint) FROM pg_database) AS total, ((pg_database_size(datname) / (SELECT SUM( pg_database_size(datname)) FROM pg_database) ) * 100)::numeric(6,3) AS pct FROM pg_database ORDER BY datname;