pg_show_plans
show query plans of all currently running SQL statements
Repository
cybertec-postgresql/pg_show_plans
https://github.com/cybertec-postgresql/pg_show_plans
Source
pg_show_plans-2.1.7.tar.gz
pg_show_plans-2.1.7.tar.gz
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_show_plans | 2.1.7 | STAT | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 6210 | pg_show_plans | No | Yes | No | Yes | No | Yes | - |
| Related | pg_store_plans explain_ui auto_explain pg_stat_statements pg_hint_plan pg_stat_monitor pg_qualstats pre_prepare |
|---|
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PGDG | 2.1.7 | 1817161514 | pg_show_plans | - |
| RPM | PGDG | 2.1.6 | 1817161514 | pg_show_plans_$v | - |
| DEB | PGDG | 2.1.7 | 1817161514 | postgresql-$v-show-plans | - |
Install
You can install pg_show_plans directly. First, make sure the PGDG repository is added and enabled:
pig repo add pgdg -u # Add PGDG repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_show_plans; # Install for current active PG version
pig ext install -y pg_show_plans -v 18 # PG 18
pig ext install -y pg_show_plans -v 17 # PG 17
pig ext install -y pg_show_plans -v 16 # PG 16
pig ext install -y pg_show_plans -v 15 # PG 15
pig ext install -y pg_show_plans -v 14 # PG 14
dnf install -y pg_show_plans_18 # PG 18
dnf install -y pg_show_plans_17 # PG 17
dnf install -y pg_show_plans_16 # PG 16
dnf install -y pg_show_plans_15 # PG 15
dnf install -y pg_show_plans_14 # PG 14
apt install -y postgresql-18-show-plans # PG 18
apt install -y postgresql-17-show-plans # PG 17
apt install -y postgresql-16-show-plans # PG 16
apt install -y postgresql-15-show-plans # PG 15
apt install -y postgresql-14-show-plans # PG 14
Create Extension:
CREATE EXTENSION pg_show_plans;
Usage
pg_show_plans displays the execution plans of all currently running SQL statements in real time. Plans are stored in a shared memory hash table.
Viewing Running Plans
-- Show plans of all currently running queries
SELECT * FROM pg_show_plans;
-- Show plans along with their query text
SELECT * FROM pg_show_plans_q;
The views return:
| Column | Type | Description |
|---|---|---|
pid | integer | Server process ID |
level | integer | Query nest level (0 = top level) |
userid | oid | User OID |
dbid | oid | Database OID |
plan | text | Query plan text |
query | text | Query string (only in pg_show_plans_q) |
Nested Queries
When a function invokes SQL statements, they appear at deeper nesting levels:
SELECT * FROM pg_show_plans;
pid | level | userid | dbid | plan
-------+-------+--------+-------+-----------------------------------------------
11504 | 0 | 10 | 16384 | Function Scan on print_item (cost=...)
11504 | 1 | 10 | 16384 | Result (cost=0.00..0.01 rows=1 width=4)
GUC Parameters
| Parameter | Default | Description |
|---|---|---|
pg_show_plans.plan_format | text | Output format: text, json, yaml, xml |
pg_show_plans.max_plan_length | 16384 | Max plan length in bytes (affects shared memory) |
pg_show_plans.is_enabled | true | Enable or disable the extension at runtime |
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.