1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-11 20:28:21 +03:00

pg_stat_statements: Add columns to track parallel worker activity

The view pg_stat_statements gains two columns:
- parallel_workers_to_launch, the number of parallel workers planned to
be launched.
- parallel_workers_launched, the number of parallel workers actually
launched.

The ratio of both columns offers hints that parallel workers are lacking
on a per-statement basis, requiring some tuning, in coordination with
"calls", the number of times a query is executed.

As of now, these numbers are tracked within Gather and GatherMerge
nodes.  They could be extended to utilities that make use of parallel
workers (parallel btree and brin, VACUUM).

The module is bumped to 1.12.

Author: Guillaume Lelarge
Discussion: https://postgr.es/m/CAECtzeWtTGOK0UgKXdDGpfTVSa5bd_VbUt6K6xn8P7X+_dZqKw@mail.gmail.com
This commit is contained in:
Michael Paquier
2024-10-09 08:30:45 +09:00
parent de3a2ea3b2
commit cf54a2c002
10 changed files with 281 additions and 11 deletions

View File

@ -0,0 +1,26 @@
--
-- Tests for parallel statistics
--
SET pg_stat_statements.track_utility = FALSE;
-- encourage use of parallel plans
SET parallel_setup_cost = 0;
SET parallel_tuple_cost = 0;
SET min_parallel_table_scan_size = 0;
SET max_parallel_workers_per_gather = 2;
CREATE TABLE pgss_parallel_tab (a int);
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
SELECT count(*) FROM pgss_parallel_tab;
SELECT query,
parallel_workers_to_launch > 0 AS has_workers_to_launch,
parallel_workers_launched > 0 AS has_workers_launched
FROM pg_stat_statements
WHERE query ~ 'SELECT count'
ORDER BY query COLLATE "C";
DROP TABLE pgss_parallel_tab;