On 11/30/18 7:42 AM, Nikolay Samokhvalov wrote:
On Thu, Nov 29, 2018 at 1:49 PM Alvaro Herrera <alvhe...@2ndquadrant.com <mailto:alvhe...@2ndquadrant.com>> wrote:

    Thanks!  I pushed this with two changes -- one was to reword the docs a
    bit more, and the other was to compute in_sample only if it's going to
    be used (when exceeded is true).  I hope this won't upset any
    compilers ...


This is a great news – I can imaging how helpful this feature will be for query analysis and
troubleshooting.

At the same time, there is an approach, when we use application (client) code or pgbouncer's connect_query parameter to perform sampled logging (with log_min_duration_statement = 0)
of n% of all *sessions* or *transactions*.

Good idead! Unfortunately it require pgbouncer, but I keep this trick in mind.


If you use single-query transactions only, new parameter will do equivalent job for you, while significantly simplifying you life (pgbouncer is not required and you don't need to patch application code). However, if you have multi-statement transaction, log_statement_sample_rate will not be enough for troubleshooting – logging just a single statement of a multi-statement transaction
won't really help to troubleshoot in many cases.

That being said, I wonder, does it make sense to think about extending the functionality just committed, with some options to to log all statements of n% of transactions (or sessions)? In other words, allowing to choose, at which level perform sampling – statement, transaction, or
session?


+1, I like this idea.

Reply via email to