Re: PostgreSQL 9.6 Temporary files - Mailing list pgsql-general

From Melvin Davidson
Subject Re: PostgreSQL 9.6 Temporary files
Date
Msg-id CANu8FixxaprfCCVJ_VYWCJi=Uu7sPFDeykEKsMwGCe8n5K8Xrg@mail.gmail.com
Whole thread Raw
In response to Re: PostgreSQL 9.6 Temporary files  (Jimmy Augustine <jimmy.augustine@enyx.fr>)
Responses Re: PostgreSQL 9.6 Temporary files  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: PostgreSQL 9.6 Temporary files  (Jimmy Augustine <jimmy.augustine@enyx.fr>)
List pgsql-general


On Mon, Mar 19, 2018 at 1:12 PM, Jimmy Augustine <jimmy.augustine@enyx.fr> wrote:


2018-03-19 18:09 GMT+01:00 Adrian Klaver <adrian.klaver@aklaver.com>:
On 03/19/2018 10:04 AM, Jimmy Augustine wrote:


2018-03-19 17:45 GMT+01:00 Adrian Klaver <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>>:

    On 03/19/2018 09:31 AM, Jimmy Augustine wrote:

        Dear Friends,

        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.

--
Adrian Klaver
adrian.klaver@aklaver.com


>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;

--
Melvin Davidson
Maj. Database & Exploration Specialist

Universe Exploration Command – UXC

Employment by invitation only!

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: PostgreSQL 9.6 Temporary files
Next
From: Jimmy Augustine
Date:
Subject: Re: PostgreSQL 9.6 Temporary files