diff options
author | Michael Paquier <michael@paquier.xyz> | 2024-10-09 08:30:45 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2024-10-09 08:30:45 +0900 |
commit | cf54a2c002544a4b7934deb44c895750aadb0a3c (patch) | |
tree | 5732146babb49b1fd76163570404e00e3a6f3bf4 /contrib/pg_stat_statements/sql/parallel.sql | |
parent | de3a2ea3b264a5625cda6d8968f75e9bfb4dbdcb (diff) | |
download | postgresql-cf54a2c002544a4b7934deb44c895750aadb0a3c.tar.gz postgresql-cf54a2c002544a4b7934deb44c895750aadb0a3c.zip |
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
Diffstat (limited to 'contrib/pg_stat_statements/sql/parallel.sql')
-rw-r--r-- | contrib/pg_stat_statements/sql/parallel.sql | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/contrib/pg_stat_statements/sql/parallel.sql b/contrib/pg_stat_statements/sql/parallel.sql new file mode 100644 index 00000000000..4ce1573d132 --- /dev/null +++ b/contrib/pg_stat_statements/sql/parallel.sql @@ -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; |