Re: Query runs on 9.2, but not on 9.4 - Mailing list pgsql-admin

From Scott Ribe
Subject Re: Query runs on 9.2, but not on 9.4
Date
Msg-id 26BEAB1A-1F90-4850-AE95-99E9CA1CDD37@elevated-dev.com
Whole thread Raw
In response to Query runs on 9.2, but not on 9.4  (John Scalia <jayknowsunix@gmail.com>)
Responses Re: Query runs on 9.2, but not on 9.4
List pgsql-admin
On Aug 5, 2015, at 7:56 AM, John Scalia <jayknowsunix@gmail.com> wrote:
>
> SELECT
> c.relname,
> pg_size_pretty(count(*) * 8192) as buffered,
> round(100.0 * count(*) /
> (SELECT setting FROM pg_settings
> WHERE name='shared_buffers')::integer,1)
> AS buffers_percent,
> round(100.0 * count(*) * 8192 /
> pg_relation_size(c.oid),1)
> AS percent_of_relation
> FROM pg_class c
> INNER JOIN pg_buffercache b
> ON b.relfilenode = c.relfilenode
> INNER JOIN pg_database d
> ON (b.reldatabase = d.oid AND d.datname = current_database())
> GROUP BY c.oid,c.relname
> ORDER BY 3 DESC
> LIMIT 25;

So, the first thing I would do is change:

> round(100.0 * count(*) /
> (SELECT setting FROM pg_settings
> WHERE name='shared_buffers')::integer,1)

to:

> (SELECT setting FROM pg_settings
> WHERE name='shared_buffers')::integer,1)

and change:

> round(100.0 * count(*) * 8192 /
> pg_relation_size(c.oid),1)

to:

> pg_relation_size(c.oid),1)

Then look for 0s in those output columns. I'll bet that the 9.4 vs 9.2 difference is simply a value of 0 for one of
those,not some exotic thing about the query plan. If I'm right about that, then you can start hunting down a specific
explanation.

--
Scott Ribe
scott_ribe@elevated-dev.com
http://www.elevated-dev.com/
https://www.linkedin.com/in/scottribe/
(303) 722-0567 voice







pgsql-admin by date:

Previous
From: John Scalia
Date:
Subject: Query runs on 9.2, but not on 9.4
Next
From: Vasilis Ventirozos
Date:
Subject: Re: Query runs on 9.2, but not on 9.4