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?
Could you tell me what are those temporary files and where are they at? Can I delete some of them?
All values come from pgAdmin 4 and checked by my own SQL queries(postgresql-9.6).
Can you show actual queries used?
I already run vacuum full and there is few dead tuples.
> 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.
I am not sure what your query was that deteremined table and index sizes, but try using the query instead.
Note that total_size is the size of the table and all it's indexes.
SELECT n.nspname as schema, c.relname as table, a.rolname as owner, c.relfilenode as filename, c.reltuples::bigint, pg_size_pretty(pg_relation_size(quote_ident(n.nspname) || '.' || quote_ident(c.relname) )) as size, pg_size_pretty(pg_total_relation_size(quote_ident(n.nspname) || '.' || quote_ident(c.relname) )) as total_size, pg_relation_size(quote_ident(n.nspname) || '.' || quote_ident(c.relname) ) as size_bytes, pg_total_relation_size(quote_ident(n.nspname) || '.' || quote_ident(c.relname) ) as total_size_bytes, CASE WHEN c.reltablespace = 0 THEN 'pg_default' ELSE (SELECT t.spcname FROM pg_tablespace t WHERE (t.oid = c.reltablespace) ) END as tablespace FROM pg_class c JOIN pg_namespace n ON (n.oid = c.relnamespace) JOIN pg_authid a ON ( a.oid = c.relowner ) WHERE quote_ident(nspname) NOT LIKE 'pg_%' AND quote_ident(relname) NOT LIKE 'pg_%' AND quote_ident(relname) NOT LIKE 'information%' AND quote_ident(relname) NOT LIKE 'sql_%' AND quote_ident(relkind) IN ('r') ORDER BY total_size_bytes DESC, 1, 2;