Re[2]: [PATCH] Add last_executed timestamp to pg_stat_statements

From: "Pavlo Golub" <pavlo(dot)golub(at)cybertec(dot)at>
To: "Christoph Berg" <myon(at)debian(dot)org>
Cc: "Sami Imseih" <samimseih(at)gmail(dot)com>, "Bertrand Drouvot" <bertranddrouvot(dot)pg(at)gmail(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re[2]: [PATCH] Add last_executed timestamp to pg_stat_statements
Date: 2026-02-06 11:19:26
Message-ID: ema0100e49-522e-4b8f-9c25-9257af1f0793@cybertec.at
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>
>I still believe that storing execution start time is the wrong thing
>to do as it will miss all long-running statements. Consider this
>timeline:
>
>09:55 get all stats changed since 09:50
> -> doesn't see the statement because it hasn't started yet
>09:57 start long-running statement
>10:00 get all stats changed since 09:55
> -> doesn't see the statement because it's still running
>10:02 long-running statement terminates, storing 09:57 as timestamp
>10:05 get all stats changed since 10:00
> -> doesn't see the statement because it's too old
>

Thanks for sharing this. I spent a sleepless night and it seems I found
the solution for the issue.

If we do

WHERE last_execution_start + max_exec_time * INTERVAL '1 ms' > NOW() -
polling_interval

we will grab all long-running statements. The worst thing that might
happen, if some query
has significant run time deviation, then we could grab it several times.
But again this is far
better than re-fetching thousands of rows every time.

For short queries it will just work as expected. "Issues" might be only
with long queries with
a high deviation longer than polling interval. But fetching one or two
rows once in a while is not
a problem.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Christoph Berg 2026-02-06 12:21:09 Re: [PATCH] Add last_executed timestamp to pg_stat_statements
Previous Message Bertrand Drouvot 2026-02-06 11:09:29 Re: Flush some statistics within running transactions