Re: pgBadger and postgres_fdw
Adrian Klaver <adrian.klaver@aklaver.com>
From: Adrian Klaver <adrian.klaver@aklaver.com>
To: Colin 't Hart <colinthart@gmail.com>
Cc: PostgreSQL General <pgsql-general@lists.postgresql.org>
Date: 2026-01-21T17:20:02Z
Lists: pgsql-general
On 1/21/26 08:59, Adrian Klaver wrote: > On 1/21/26 08:12, Colin 't Hart wrote: > >> 6. The 19 slowest queries in a 4 hour period are between 2 and 37 >> minutes, with an average of over 10 minutes; they are all `fetch 100 >> from c2`. >> >> The slowness itself isn't my question here; it was caused by having >> too few cores in the new environment, while the application was still >> assuming the higher core count and generating too many concurrent >> processes. >> >> My question is how to identify which connections / queries from >> postgres_fdw are generating the `fetch 100 from c2` queries, which, in >> turn, may quite possibly lead to a feature request for having these >> named uniquely. > > My guess not. > > See: > > https://github.com/postgres/postgres/blob/master/contrib/postgres_fdw/ > postgres_fdw.c > > Starting at line ~5212 > > fetch_size = 100; > > and ending at line ~5234 > > /* Construct command to fetch rows from remote. */ > snprintf(fetch_sql, sizeof(fetch_sql), "FETCH %d FROM c%u", > fetch_size, cursor_number); > > So c2 is a cursor number. If I am following this something postgres_fdw does to fetch the result in batches, so all the queries will have them. FYI, the fetch_size can be changed, see here: https://www.postgresql.org/docs/17/postgres-fdw.html#POSTGRES-FDW-CONFIGURATION-PARAMETERS F.36.1.4. Remote Execution Options If you want connection/query information I would enable from here: https://www.postgresql.org/docs/17/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHAT log_connections log_disconnections And at least temporarily: log_statement = 'all' The above will generate a lot of logs so you don't want to keep set for too long. > >> >> Thanks, >> >> Colin >> > > > -- Adrian Klaver adrian.klaver@aklaver.com