Logging difficult queries

A straightforward way to generate log files only for the complex, long running queries on your server-cutting out routine logging of small queries and therefore reducing logging overhead—is to set a minimum statement duration to log.

A typical configuration would be as follows:

log_min_duration_statement = 1000 
log_duration = off 
log_statement = 'none' 

The first line there will log every statement that takes over 1000 ms (one second) without logging anything else. The other two are actually the defaults.

An alternate approach you'll sometimes see instead aims to just capture every query:

log_min_duration_statement = -1 
log_duration = on 
log_statement = 'all' 

Since setting log_min_duration_statement to 0 will also ...

Get PostgreSQL 10 High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.