Thread: Exact same output - pg_stat_statements

Exact same output - pg_stat_statements

From
Rushikesh socha
Date:
Hi, Whenever I am running the below query on one of my Azure PostgreSQL PaaS instances I am getting exact same output. I feel it shows old information but as far as i know pg_stat_statements only shows current information and not past right ? It may be a bug? 

SELECT dbid,queryid,substring(query, 1, 50) AS short_query,
          round(total_time::numeric, 2) AS total_time,
          calls,
          round(mean_time::numeric, 2) AS mean,
          round((100 * total_time / sum(total_time::numeric) OVER ())::numeric, 2) AS percentage_cpu
FROM  pg_stat_statements
ORDER BY total_time DESC
LIMIT 20;

I have erased the query text from the screenshot below. but Please look at the rest of the columns which are exactly the same. How it is possible ?

image.png


Thanks.


Attachment

Re: Exact same output - pg_stat_statements

From
Ron
Date:
The screen shots are hard to see.  Too small.  (Imgur links might be better.)

On 12/30/22 10:04, Rushikesh socha wrote:
Hi, Whenever I am running the below query on one of my Azure PostgreSQL PaaS instances I am getting exact same output. I feel it shows old information but as far as i know pg_stat_statements only shows current information and not past right ? It may be a bug? 

SELECT dbid,queryid,substring(query, 1, 50) AS short_query,
          round(total_time::numeric, 2) AS total_time,
          calls,
          round(mean_time::numeric, 2) AS mean,
          round((100 * total_time / sum(total_time::numeric) OVER ())::numeric, 2) AS percentage_cpu
FROM  pg_stat_statements
ORDER BY total_time DESC
LIMIT 20;

I have erased the query text from the screenshot below. but Please look at the rest of the columns which are exactly the same. How it is possible ?

image.png


Thanks.



--
Born in Arizona, moved to Babylonia.
Attachment

Re: Exact same output - pg_stat_statements

From
Rushikesh socha
Date:
Just trying to show that the query output is exactly the same anytime I run. 

Thanks.


On Fri, Dec 30, 2022 at 3:24 PM Ron <ronljohnsonjr@gmail.com> wrote:
The screen shots are hard to see.  Too small.  (Imgur links might be better.)

On 12/30/22 10:04, Rushikesh socha wrote:
Hi, Whenever I am running the below query on one of my Azure PostgreSQL PaaS instances I am getting exact same output. I feel it shows old information but as far as i know pg_stat_statements only shows current information and not past right ? It may be a bug? 

SELECT dbid,queryid,substring(query, 1, 50) AS short_query,
          round(total_time::numeric, 2) AS total_time,
          calls,
          round(mean_time::numeric, 2) AS mean,
          round((100 * total_time / sum(total_time::numeric) OVER ())::numeric, 2) AS percentage_cpu
FROM  pg_stat_statements
ORDER BY total_time DESC
LIMIT 20;

I have erased the query text from the screenshot below. but Please look at the rest of the columns which are exactly the same. How it is possible ?

image.png


Thanks.



--
Born in Arizona, moved to Babylonia.
Attachment

Re: Exact same output - pg_stat_statements

From
hubert depesz lubaczewski
Date:
On Fri, Dec 30, 2022 at 11:04:59AM -0500, Rushikesh socha wrote:
> Hi, Whenever I am running the below query on one of my Azure PostgreSQL
> PaaS instances I am getting exact same output. I feel it shows old
> information but as far as i know pg_stat_statements only shows current
> information and not past right ? It may be a bug?

pg_stat_statements has all the data since last reset of stats.

So if you never reset stats, it accumulated data for howeve rlong you
are using pg.

Not really surprising that top total-time uses are the same.

If you want to sensibly use it you should call reset function every now
and then.
Best regards,

depesz




Re: Exact same output - pg_stat_statements

From
Julien Rouhaud
Date:
On Mon, Jan 02, 2023 at 02:34:13PM +0100, hubert depesz lubaczewski wrote:
> On Fri, Dec 30, 2022 at 11:04:59AM -0500, Rushikesh socha wrote:
> > Hi, Whenever I am running the below query on one of my Azure PostgreSQL
> > PaaS instances I am getting exact same output. I feel it shows old
> > information but as far as i know pg_stat_statements only shows current
> > information and not past right ? It may be a bug?
>
> pg_stat_statements has all the data since last reset of stats.
>
> So if you never reset stats, it accumulated data for howeve rlong you
> are using pg.
>
> Not really surprising that top total-time uses are the same.
>
> If you want to sensibly use it you should call reset function every now
> and then.

Resetting the data adds some noticeable overhead as newly added entries will
need to generate a normalize query string and so on.  What most people do is
taking regular snapshots of pg_stat_statements (and other stats) view and then
compare the snapshots.  There are a few open source projects doing that
available.



Re: Exact same output - pg_stat_statements

From
hubert depesz lubaczewski
Date:
On Tue, Jan 03, 2023 at 01:52:17PM +0800, Julien Rouhaud wrote:
> Resetting the data adds some noticeable overhead as newly added entries will
> need to generate a normalize query string and so on.  What most people do is
> taking regular snapshots of pg_stat_statements (and other stats) view and then
> compare the snapshots.  There are a few open source projects doing that
> available.

Why do you assume that the cost of normalization query string will be in
any way measurable? Especially in comparison do extra cost of doin math
on potentially thousands of rows?

Best regards,

depesz