plprofiler

plprofiler

plprofiler : server-side support for profiling PL/pgSQL functions

Overview

ID Extension Package Version Category License Language
3070
plprofiler
plprofiler
4.2.5
LANG
Artistic
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--sLd-r
No
Yes
Yes
Yes
yes
no
Relationships
See Also
pldbgapi
plpgsql_check
plpgsql
pgtap
pg_profile
pg_stat_statements
pg_store_plans
auto_explain

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PGDG
4.2.5
18
17
16
15
14
plprofiler -
RPM
PGDG
4.2.5
18
17
16
15
14
plprofiler_$v -
DEB
PGDG
4.2.5
18
17
16
15
14
postgresql-$v-plprofiler -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
el8.aarch64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
el9.x86_64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
el9.aarch64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
el10.x86_64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
el10.aarch64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
d12.x86_64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
d12.aarch64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
d13.x86_64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
d13.aarch64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
u22.x86_64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
u22.aarch64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
u24.x86_64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
u24.aarch64
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
PGDG 4.2.5
Package Version OS ORG SIZE File URL
plprofiler_18 4.2.5 el8.x86_64 pgdg 7.5 KiB plprofiler_18-4.2.5-5PGDG.rhel8.10.x86_64.rpm
plprofiler_18 4.2.5 el8.aarch64 pgdg 7.5 KiB plprofiler_18-4.2.5-5PGDG.rhel8.10.aarch64.rpm
plprofiler_18 4.2.5 el9.x86_64 pgdg 6.9 KiB plprofiler_18-4.2.5-5PGDG.rhel9.7.x86_64.rpm
plprofiler_18 4.2.5 el9.x86_64 pgdg 6.7 KiB plprofiler_18-4.2.5-2PGDG.rhel9.x86_64.rpm
plprofiler_18 4.2.5 el9.aarch64 pgdg 6.9 KiB plprofiler_18-4.2.5-5PGDG.rhel9.7.aarch64.rpm
plprofiler_18 4.2.5 el9.aarch64 pgdg 6.7 KiB plprofiler_18-4.2.5-2PGDG.rhel9.aarch64.rpm
plprofiler_18 4.2.5 el10.x86_64 pgdg 7.1 KiB plprofiler_18-4.2.5-5PGDG.rhel10.1.x86_64.rpm
plprofiler_18 4.2.5 el10.x86_64 pgdg 7.3 KiB plprofiler_18-4.2.5-2PGDG.rhel10.x86_64.rpm
plprofiler_18 4.2.5 el10.aarch64 pgdg 7.0 KiB plprofiler_18-4.2.5-5PGDG.rhel10.1.aarch64.rpm
plprofiler_18 4.2.5 el10.aarch64 pgdg 7.2 KiB plprofiler_18-4.2.5-2PGDG.rhel10.aarch64.rpm
postgresql-18-plprofiler 4.2.5 d12.x86_64 pgdg 45.3 KiB postgresql-18-plprofiler_4.2.5-4.pgdg12+1_amd64.deb
postgresql-18-plprofiler 4.2.5 d12.aarch64 pgdg 44.5 KiB postgresql-18-plprofiler_4.2.5-4.pgdg12+1_arm64.deb
postgresql-18-plprofiler 4.2.5 d13.x86_64 pgdg 45.3 KiB postgresql-18-plprofiler_4.2.5-4.pgdg13+1_amd64.deb
postgresql-18-plprofiler 4.2.5 d13.aarch64 pgdg 44.5 KiB postgresql-18-plprofiler_4.2.5-4.pgdg13+1_arm64.deb
postgresql-18-plprofiler 4.2.5 u22.x86_64 pgdg 46.2 KiB postgresql-18-plprofiler_4.2.5-4.pgdg22.04+1_amd64.deb
postgresql-18-plprofiler 4.2.5 u22.aarch64 pgdg 45.4 KiB postgresql-18-plprofiler_4.2.5-4.pgdg22.04+1_arm64.deb
postgresql-18-plprofiler 4.2.5 u24.x86_64 pgdg 45.3 KiB postgresql-18-plprofiler_4.2.5-4.pgdg24.04+1_amd64.deb
postgresql-18-plprofiler 4.2.5 u24.aarch64 pgdg 44.4 KiB postgresql-18-plprofiler_4.2.5-4.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
plprofiler_17 4.2.5 el8.x86_64 pgdg 7.5 KiB plprofiler_17-4.2.5-5PGDG.rhel8.10.x86_64.rpm
plprofiler_17 4.2.5 el8.x86_64 pgdg 7.0 KiB plprofiler_17-4.2.5-1PGDG.rhel8.x86_64.rpm
plprofiler_17 4.2.5 el8.aarch64 pgdg 7.5 KiB plprofiler_17-4.2.5-5PGDG.rhel8.10.aarch64.rpm
plprofiler_17 4.2.5 el8.aarch64 pgdg 7.0 KiB plprofiler_17-4.2.5-1PGDG.rhel8.aarch64.rpm
plprofiler_17 4.2.5 el9.x86_64 pgdg 6.9 KiB plprofiler_17-4.2.5-5PGDG.rhel9.7.x86_64.rpm
plprofiler_17 4.2.5 el9.x86_64 pgdg 7.1 KiB plprofiler_17-4.2.5-1PGDG.rhel9.x86_64.rpm
plprofiler_17 4.2.5 el9.aarch64 pgdg 6.9 KiB plprofiler_17-4.2.5-5PGDG.rhel9.7.aarch64.rpm
plprofiler_17 4.2.5 el9.aarch64 pgdg 7.0 KiB plprofiler_17-4.2.5-1PGDG.rhel9.aarch64.rpm
plprofiler_17 4.2.5 el10.x86_64 pgdg 7.1 KiB plprofiler_17-4.2.5-5PGDG.rhel10.1.x86_64.rpm
plprofiler_17 4.2.5 el10.x86_64 pgdg 7.3 KiB plprofiler_17-4.2.5-2PGDG.rhel10.x86_64.rpm
plprofiler_17 4.2.5 el10.aarch64 pgdg 7.0 KiB plprofiler_17-4.2.5-5PGDG.rhel10.1.aarch64.rpm
postgresql-17-plprofiler 4.2.5 d12.x86_64 pgdg 45.2 KiB postgresql-17-plprofiler_4.2.5-4.pgdg12+1_amd64.deb
postgresql-17-plprofiler 4.2.5 d12.aarch64 pgdg 44.4 KiB postgresql-17-plprofiler_4.2.5-4.pgdg12+1_arm64.deb
postgresql-17-plprofiler 4.2.5 d13.x86_64 pgdg 45.2 KiB postgresql-17-plprofiler_4.2.5-4.pgdg13+1_amd64.deb
postgresql-17-plprofiler 4.2.5 d13.aarch64 pgdg 44.5 KiB postgresql-17-plprofiler_4.2.5-4.pgdg13+1_arm64.deb
postgresql-17-plprofiler 4.2.5 u22.x86_64 pgdg 52.1 KiB postgresql-17-plprofiler_4.2.5-4.pgdg22.04+1_amd64.deb
postgresql-17-plprofiler 4.2.5 u22.aarch64 pgdg 51.2 KiB postgresql-17-plprofiler_4.2.5-4.pgdg22.04+1_arm64.deb
postgresql-17-plprofiler 4.2.5 u24.x86_64 pgdg 45.4 KiB postgresql-17-plprofiler_4.2.5-4.pgdg24.04+1_amd64.deb
postgresql-17-plprofiler 4.2.5 u24.aarch64 pgdg 44.6 KiB postgresql-17-plprofiler_4.2.5-4.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
plprofiler_16 4.2.5 el8.x86_64 pgdg 7.5 KiB plprofiler_16-4.2.5-5PGDG.rhel8.10.x86_64.rpm
plprofiler_16 4.2.4 el8.x86_64 pgdg 6.8 KiB plprofiler_16-4.2.4-1PGDG.rhel8.x86_64.rpm
plprofiler_16 4.2.5 el8.aarch64 pgdg 7.5 KiB plprofiler_16-4.2.5-5PGDG.rhel8.10.aarch64.rpm
plprofiler_16 4.2.4 el8.aarch64 pgdg 6.8 KiB plprofiler_16-4.2.4-1PGDG.rhel8.aarch64.rpm
plprofiler_16 4.2.5 el9.x86_64 pgdg 6.9 KiB plprofiler_16-4.2.5-5PGDG.rhel9.7.x86_64.rpm
plprofiler_16 4.2.4 el9.x86_64 pgdg 6.9 KiB plprofiler_16-4.2.4-1PGDG.rhel9.x86_64.rpm
plprofiler_16 4.2.5 el9.aarch64 pgdg 6.9 KiB plprofiler_16-4.2.5-5PGDG.rhel9.7.aarch64.rpm
plprofiler_16 4.2.4 el9.aarch64 pgdg 6.7 KiB plprofiler_16-4.2.4-1PGDG.rhel9.aarch64.rpm
plprofiler_16 4.2.5 el10.x86_64 pgdg 7.1 KiB plprofiler_16-4.2.5-5PGDG.rhel10.1.x86_64.rpm
plprofiler_16 4.2.5 el10.x86_64 pgdg 7.3 KiB plprofiler_16-4.2.5-2PGDG.rhel10.x86_64.rpm
plprofiler_16 4.2.5 el10.aarch64 pgdg 7.0 KiB plprofiler_16-4.2.5-5PGDG.rhel10.1.aarch64.rpm
postgresql-16-plprofiler 4.2.5 d12.x86_64 pgdg 45.3 KiB postgresql-16-plprofiler_4.2.5-4.pgdg12+1_amd64.deb
postgresql-16-plprofiler 4.2.5 d12.aarch64 pgdg 44.4 KiB postgresql-16-plprofiler_4.2.5-4.pgdg12+1_arm64.deb
postgresql-16-plprofiler 4.2.5 d13.x86_64 pgdg 45.2 KiB postgresql-16-plprofiler_4.2.5-4.pgdg13+1_amd64.deb
postgresql-16-plprofiler 4.2.5 d13.aarch64 pgdg 44.5 KiB postgresql-16-plprofiler_4.2.5-4.pgdg13+1_arm64.deb
postgresql-16-plprofiler 4.2.5 u22.x86_64 pgdg 52.1 KiB postgresql-16-plprofiler_4.2.5-4.pgdg22.04+1_amd64.deb
postgresql-16-plprofiler 4.2.5 u22.aarch64 pgdg 51.1 KiB postgresql-16-plprofiler_4.2.5-4.pgdg22.04+1_arm64.deb
postgresql-16-plprofiler 4.2.5 u24.x86_64 pgdg 45.4 KiB postgresql-16-plprofiler_4.2.5-4.pgdg24.04+1_amd64.deb
postgresql-16-plprofiler 4.2.5 u24.aarch64 pgdg 44.5 KiB postgresql-16-plprofiler_4.2.5-4.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
plprofiler_15 4.2.5 el8.x86_64 pgdg 7.5 KiB plprofiler_15-4.2.5-5PGDG.rhel8.10.x86_64.rpm
plprofiler_15 4.2.2 el8.x86_64 pgdg 6.8 KiB plprofiler_15-4.2.2-1PGDG.rhel8.x86_64.rpm
plprofiler_15 4.2.1 el8.x86_64 pgdg 6.6 KiB plprofiler_15-4.2.1-1.rhel8.x86_64.rpm
plprofiler_15 4.2 el8.x86_64 pgdg 6.4 KiB plprofiler_15-4.2-1.rhel8.x86_64.rpm
plprofiler_15 4.2.5 el8.aarch64 pgdg 7.5 KiB plprofiler_15-4.2.5-5PGDG.rhel8.10.aarch64.rpm
plprofiler_15 4.2.2 el8.aarch64 pgdg 6.7 KiB plprofiler_15-4.2.2-1PGDG.rhel8.aarch64.rpm
plprofiler_15 4.2.1 el8.aarch64 pgdg 6.5 KiB plprofiler_15-4.2.1-1.rhel8.aarch64.rpm
plprofiler_15 4.2 el8.aarch64 pgdg 6.4 KiB plprofiler_15-4.2-1.rhel8.aarch64.rpm
plprofiler_15 4.2.5 el9.x86_64 pgdg 6.9 KiB plprofiler_15-4.2.5-5PGDG.rhel9.7.x86_64.rpm
plprofiler_15 4.2.2 el9.x86_64 pgdg 6.8 KiB plprofiler_15-4.2.2-1PGDG.rhel9.x86_64.rpm
plprofiler_15 4.2.1 el9.x86_64 pgdg 6.6 KiB plprofiler_15-4.2.1-1.rhel9.x86_64.rpm
plprofiler_15 4.2 el9.x86_64 pgdg 6.5 KiB plprofiler_15-4.2-1.rhel9.x86_64.rpm
plprofiler_15 4.2.5 el9.aarch64 pgdg 6.9 KiB plprofiler_15-4.2.5-5PGDG.rhel9.7.aarch64.rpm
plprofiler_15 4.2.2 el9.aarch64 pgdg 6.7 KiB plprofiler_15-4.2.2-1PGDG.rhel9.aarch64.rpm
plprofiler_15 4.2.1 el9.aarch64 pgdg 6.5 KiB plprofiler_15-4.2.1-1.rhel9.aarch64.rpm
plprofiler_15 4.2 el9.aarch64 pgdg 6.3 KiB plprofiler_15-4.2-1.rhel9.aarch64.rpm
plprofiler_15 4.2.5 el10.x86_64 pgdg 7.1 KiB plprofiler_15-4.2.5-5PGDG.rhel10.1.x86_64.rpm
plprofiler_15 4.2.5 el10.x86_64 pgdg 7.3 KiB plprofiler_15-4.2.5-2PGDG.rhel10.x86_64.rpm
plprofiler_15 4.2.5 el10.aarch64 pgdg 7.0 KiB plprofiler_15-4.2.5-5PGDG.rhel10.1.aarch64.rpm
postgresql-15-plprofiler 4.2.5 d12.x86_64 pgdg 45.5 KiB postgresql-15-plprofiler_4.2.5-4.pgdg12+1_amd64.deb
postgresql-15-plprofiler 4.2.5 d12.aarch64 pgdg 44.5 KiB postgresql-15-plprofiler_4.2.5-4.pgdg12+1_arm64.deb
postgresql-15-plprofiler 4.2.5 d13.x86_64 pgdg 45.5 KiB postgresql-15-plprofiler_4.2.5-4.pgdg13+1_amd64.deb
postgresql-15-plprofiler 4.2.5 d13.aarch64 pgdg 44.7 KiB postgresql-15-plprofiler_4.2.5-4.pgdg13+1_arm64.deb
postgresql-15-plprofiler 4.2.5 u22.x86_64 pgdg 52.3 KiB postgresql-15-plprofiler_4.2.5-4.pgdg22.04+1_amd64.deb
postgresql-15-plprofiler 4.2.5 u22.aarch64 pgdg 51.3 KiB postgresql-15-plprofiler_4.2.5-4.pgdg22.04+1_arm64.deb
postgresql-15-plprofiler 4.2.5 u24.x86_64 pgdg 45.6 KiB postgresql-15-plprofiler_4.2.5-4.pgdg24.04+1_amd64.deb
postgresql-15-plprofiler 4.2.5 u24.aarch64 pgdg 44.7 KiB postgresql-15-plprofiler_4.2.5-4.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
plprofiler_14 4.2.5 el8.x86_64 pgdg 7.5 KiB plprofiler_14-4.2.5-5PGDG.rhel8.10.x86_64.rpm
plprofiler_14 4.2.2 el8.x86_64 pgdg 6.8 KiB plprofiler_14-4.2.2-1PGDG.rhel8.x86_64.rpm
plprofiler_14 4.2.1 el8.x86_64 pgdg 6.6 KiB plprofiler_14-4.2.1-1.rhel8.x86_64.rpm
plprofiler_14 4.2 el8.x86_64 pgdg 6.4 KiB plprofiler_14-4.2-1.rhel8.x86_64.rpm
plprofiler_14 4.2.5 el8.aarch64 pgdg 7.5 KiB plprofiler_14-4.2.5-5PGDG.rhel8.10.aarch64.rpm
plprofiler_14 4.2.2 el8.aarch64 pgdg 6.7 KiB plprofiler_14-4.2.2-1PGDG.rhel8.aarch64.rpm
plprofiler_14 4.2.1 el8.aarch64 pgdg 6.5 KiB plprofiler_14-4.2.1-1.rhel8.aarch64.rpm
plprofiler_14 4.2 el8.aarch64 pgdg 6.4 KiB plprofiler_14-4.2-1.rhel8.aarch64.rpm
plprofiler_14 4.2.5 el9.x86_64 pgdg 6.9 KiB plprofiler_14-4.2.5-5PGDG.rhel9.7.x86_64.rpm
plprofiler_14 4.2.2 el9.x86_64 pgdg 6.8 KiB plprofiler_14-4.2.2-1PGDG.rhel9.x86_64.rpm
plprofiler_14 4.2.1 el9.x86_64 pgdg 6.6 KiB plprofiler_14-4.2.1-1.rhel9.x86_64.rpm
plprofiler_14 4.2 el9.x86_64 pgdg 6.5 KiB plprofiler_14-4.2-1.rhel9.x86_64.rpm
plprofiler_14 4.2.5 el9.aarch64 pgdg 6.9 KiB plprofiler_14-4.2.5-5PGDG.rhel9.7.aarch64.rpm
plprofiler_14 4.2.2 el9.aarch64 pgdg 6.7 KiB plprofiler_14-4.2.2-1PGDG.rhel9.aarch64.rpm
plprofiler_14 4.2.1 el9.aarch64 pgdg 6.5 KiB plprofiler_14-4.2.1-1.rhel9.aarch64.rpm
plprofiler_14 4.2 el9.aarch64 pgdg 6.3 KiB plprofiler_14-4.2-1.rhel9.aarch64.rpm
plprofiler_14 4.2.5 el10.x86_64 pgdg 7.1 KiB plprofiler_14-4.2.5-5PGDG.rhel10.1.x86_64.rpm
plprofiler_14 4.2.5 el10.x86_64 pgdg 7.3 KiB plprofiler_14-4.2.5-2PGDG.rhel10.x86_64.rpm
plprofiler_14 4.2.5 el10.aarch64 pgdg 7.0 KiB plprofiler_14-4.2.5-5PGDG.rhel10.1.aarch64.rpm
postgresql-14-plprofiler 4.2.5 d12.x86_64 pgdg 45.2 KiB postgresql-14-plprofiler_4.2.5-4.pgdg12+1_amd64.deb
postgresql-14-plprofiler 4.2.5 d12.aarch64 pgdg 44.2 KiB postgresql-14-plprofiler_4.2.5-4.pgdg12+1_arm64.deb
postgresql-14-plprofiler 4.2.5 d13.x86_64 pgdg 45.3 KiB postgresql-14-plprofiler_4.2.5-4.pgdg13+1_amd64.deb
postgresql-14-plprofiler 4.2.5 d13.aarch64 pgdg 44.3 KiB postgresql-14-plprofiler_4.2.5-4.pgdg13+1_arm64.deb
postgresql-14-plprofiler 4.2.5 u22.x86_64 pgdg 50.4 KiB postgresql-14-plprofiler_4.2.5-4.pgdg22.04+1_amd64.deb
postgresql-14-plprofiler 4.2.5 u22.aarch64 pgdg 49.4 KiB postgresql-14-plprofiler_4.2.5-4.pgdg22.04+1_arm64.deb
postgresql-14-plprofiler 4.2.5 u24.x86_64 pgdg 45.4 KiB postgresql-14-plprofiler_4.2.5-4.pgdg24.04+1_amd64.deb
postgresql-14-plprofiler 4.2.5 u24.aarch64 pgdg 44.3 KiB postgresql-14-plprofiler_4.2.5-4.pgdg24.04+1_arm64.deb

Source

Install

Make sure PGDG repo available:

pig repo add pgdg -u # add pgdg repo and update cache

Install this extension with pig:

pig install plprofiler;# install via package name, for the active PG version  pig install plprofiler -v 18; # install for PG 18 pig install plprofiler -v 17; # install for PG 17 pig install plprofiler -v 16; # install for PG 16 pig install plprofiler -v 15; # install for PG 15 pig install plprofiler -v 14; # install for PG 14

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'plprofiler';

Create this extension with:

CREATE EXTENSION plprofiler;

Usage

plprofiler: server-side support for profiling PL/pgSQL functions

plprofiler is a profiling tool for PL/pgSQL functions that identifies performance bottlenecks and generates interactive flame graph reports.

CREATE EXTENSION plprofiler;

Configuration

Add to postgresql.conf:

shared_preload_libraries = 'plprofiler'

Command-Line Tool

The plprofiler command-line utility controls profiling and generates reports:

# Profile a specific SQL command plprofiler run -d mydb --command "SELECT my_function()" --output report.html  # Monitor profiling in real-time plprofiler monitor -d mydb  # Save profiling data for later analysis plprofiler save -d mydb --name "my_profile"  # Generate HTML report with flame graphs plprofiler report -d mydb --from-data "my_profile" --output report.html  # List saved profiling datasets plprofiler list -d mydb  # Reset profiling data plprofiler reset-data -d mydb  # Export/import profiling data plprofiler export -d mydb --from-data "my_profile" > profile.json plprofiler import -d mydb --into-data "imported" < profile.json

SQL Interface

-- Enable profiling for the current session SELECT pl_profiler_set_enabled_local(true);  -- Execute functions to be profiled SELECT my_function();  -- Collect profiling data into shared hash tables SELECT pl_profiler_collect_data();  -- Disable profiling SELECT pl_profiler_set_enabled_local(false);  -- Enable profiling globally (for all sessions) SELECT pl_profiler_set_enabled_global(true);  -- Reset local/shared profiling data SELECT pl_profiler_reset_local(); SELECT pl_profiler_reset_shared();

Report Output

Generated HTML reports include:

  • Interactive flame graphs showing wall-clock time spent in PL/pgSQL code
  • Per-function statistics with self-time (total minus children)
  • Top functions ranked by time consumption (default: top 10)
  • Self-contained HTML requiring no external dependencies

Profiling Methods

  • Direct profiling: Run specific SQL while collecting data
  • Timed collection: Interval-based statistics gathering
  • Per-user profiling: Enable profiling for specific database users via ALTER USER
  • Production monitoring: Low-overhead profiling on live systems
Last updated on