pg_qualstats

pg_qualstats

pg_qualstats : An extension collecting statistics about quals

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
6240
pg_qualstats
pg_qualstats
2.1.3
STAT
BSD 3-Clause
C
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--sLd--
No
Yes
Yes
Yes
no
no
Relationships
See Also
hypopg
pg_stat_kcache
powa
pg_stat_statements
index_advisor
pre_prepare
pg_show_plans
pg_stat_monitor

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PGDG
2.1.3
18
17
16
15
14
pg_qualstats-
RPM
PGDG
2.1.2
18
17
16
15
14
pg_qualstats_$v-
DEB
PGDG
2.1.3
18
17
16
15
14
postgresql-$v-pg-qualstats-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 2.1.2
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
el8.aarch64
PGDG 2.1.2
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
el9.x86_64
PGDG 2.1.2
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
el9.aarch64
PGDG 2.1.2
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
el10.x86_64
PGDG 2.1.2
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
el10.aarch64
PGDG 2.1.2
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
PGDG 2.1.1
d12.x86_64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
d12.aarch64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
d13.x86_64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
d13.aarch64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
u22.x86_64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
u22.aarch64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
u24.x86_64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
u24.aarch64
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PGDG 2.1.3
PackageVersionOSORGSIZEFile URL
pg_qualstats_162.1.1el8.x86_64pgdg37.6 KiBpg_qualstats_16-2.1.1-1PGDG.rhel8.x86_64.rpm
pg_qualstats_162.1.0el8.x86_64pgdg36.9 KiBpg_qualstats_16-2.1.0-1PGDG.rhel8.x86_64.rpm
pg_qualstats_162.0.4el8.x86_64pgdg35.5 KiBpg_qualstats_16-2.0.4-3PGDG.rhel8.x86_64.rpm
pg_qualstats_162.1.1el8.aarch64pgdg36.7 KiBpg_qualstats_16-2.1.1-1PGDG.rhel8.aarch64.rpm
pg_qualstats_162.1.0el8.aarch64pgdg36.0 KiBpg_qualstats_16-2.1.0-1PGDG.rhel8.aarch64.rpm
pg_qualstats_162.0.4el8.aarch64pgdg34.7 KiBpg_qualstats_16-2.0.4-3PGDG.rhel8.aarch64.rpm
pg_qualstats_162.1.1el9.x86_64pgdg36.1 KiBpg_qualstats_16-2.1.1-1PGDG.rhel9.x86_64.rpm
pg_qualstats_162.1.0el9.x86_64pgdg35.3 KiBpg_qualstats_16-2.1.0-1PGDG.rhel9.x86_64.rpm
pg_qualstats_162.0.4el9.x86_64pgdg34.2 KiBpg_qualstats_16-2.0.4-3PGDG.rhel9.x86_64.rpm
pg_qualstats_162.1.1el9.aarch64pgdg35.6 KiBpg_qualstats_16-2.1.1-1PGDG.rhel9.aarch64.rpm
pg_qualstats_162.1.0el9.aarch64pgdg34.7 KiBpg_qualstats_16-2.1.0-1PGDG.rhel9.aarch64.rpm
pg_qualstats_162.0.4el9.aarch64pgdg33.4 KiBpg_qualstats_16-2.0.4-3PGDG.rhel9.aarch64.rpm
pg_qualstats_162.1.1el10.x86_64pgdg36.6 KiBpg_qualstats_16-2.1.1-2PGDG.rhel10.x86_64.rpm
pg_qualstats_162.1.1el10.aarch64pgdg36.2 KiBpg_qualstats_16-2.1.1-2PGDG.rhel10.aarch64.rpm
postgresql-16-pg-qualstats2.1.3d12.x86_64pgdg56.8 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg12+1_amd64.deb
postgresql-16-pg-qualstats2.1.3d12.aarch64pgdg55.8 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg12+1_arm64.deb
postgresql-16-pg-qualstats2.1.3d13.x86_64pgdg56.7 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg13+1_amd64.deb
postgresql-16-pg-qualstats2.1.3d13.aarch64pgdg56.1 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg13+1_arm64.deb
postgresql-16-pg-qualstats2.1.3u22.x86_64pgdg60.4 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg22.04+1_amd64.deb
postgresql-16-pg-qualstats2.1.3u22.aarch64pgdg58.8 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg22.04+1_arm64.deb
postgresql-16-pg-qualstats2.1.3u24.x86_64pgdg54.2 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg24.04+1_amd64.deb
postgresql-16-pg-qualstats2.1.3u24.aarch64pgdg53.3 KiBpostgresql-16-pg-qualstats_2.1.3-1.pgdg24.04+1_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_qualstats_152.1.1el8.x86_64pgdg37.6 KiBpg_qualstats_15-2.1.1-1PGDG.rhel8.x86_64.rpm
pg_qualstats_152.1.0el8.x86_64pgdg37.0 KiBpg_qualstats_15-2.1.0-1PGDG.rhel8.x86_64.rpm
pg_qualstats_152.0.4el8.x86_64pgdg68.1 KiBpg_qualstats_15-2.0.4-1.rhel8.x86_64.rpm
pg_qualstats_152.1.1el8.aarch64pgdg36.7 KiBpg_qualstats_15-2.1.1-1PGDG.rhel8.aarch64.rpm
pg_qualstats_152.1.0el8.aarch64pgdg36.1 KiBpg_qualstats_15-2.1.0-1PGDG.rhel8.aarch64.rpm
pg_qualstats_152.0.4el8.aarch64pgdg66.9 KiBpg_qualstats_15-2.0.4-1.rhel8.aarch64.rpm
pg_qualstats_152.1.1el9.x86_64pgdg36.2 KiBpg_qualstats_15-2.1.1-1PGDG.rhel9.x86_64.rpm
pg_qualstats_152.1.0el9.x86_64pgdg35.4 KiBpg_qualstats_15-2.1.0-1PGDG.rhel9.x86_64.rpm
pg_qualstats_152.0.4el9.x86_64pgdg68.1 KiBpg_qualstats_15-2.0.4-1.rhel9.x86_64.rpm
pg_qualstats_152.1.1el9.aarch64pgdg35.6 KiBpg_qualstats_15-2.1.1-1PGDG.rhel9.aarch64.rpm
pg_qualstats_152.1.0el9.aarch64pgdg34.7 KiBpg_qualstats_15-2.1.0-1PGDG.rhel9.aarch64.rpm
pg_qualstats_152.0.4el9.aarch64pgdg67.0 KiBpg_qualstats_15-2.0.4-1.rhel9.aarch64.rpm
pg_qualstats_152.1.1el10.x86_64pgdg36.6 KiBpg_qualstats_15-2.1.1-2PGDG.rhel10.x86_64.rpm
pg_qualstats_152.1.1el10.aarch64pgdg36.2 KiBpg_qualstats_15-2.1.1-2PGDG.rhel10.aarch64.rpm
postgresql-15-pg-qualstats2.1.3d12.x86_64pgdg56.8 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg12+1_amd64.deb
postgresql-15-pg-qualstats2.1.3d12.aarch64pgdg55.8 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg12+1_arm64.deb
postgresql-15-pg-qualstats2.1.3d13.x86_64pgdg56.7 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg13+1_amd64.deb
postgresql-15-pg-qualstats2.1.3d13.aarch64pgdg56.1 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg13+1_arm64.deb
postgresql-15-pg-qualstats2.1.3u22.x86_64pgdg60.5 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg22.04+1_amd64.deb
postgresql-15-pg-qualstats2.1.3u22.aarch64pgdg58.8 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg22.04+1_arm64.deb
postgresql-15-pg-qualstats2.1.3u24.x86_64pgdg54.3 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg24.04+1_amd64.deb
postgresql-15-pg-qualstats2.1.3u24.aarch64pgdg53.3 KiBpostgresql-15-pg-qualstats_2.1.3-1.pgdg24.04+1_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_qualstats_142.1.1el8.x86_64pgdg37.7 KiBpg_qualstats_14-2.1.1-1PGDG.rhel8.x86_64.rpm
pg_qualstats_142.1.0el8.x86_64pgdg37.1 KiBpg_qualstats_14-2.1.0-1PGDG.rhel8.x86_64.rpm
pg_qualstats_142.0.4el8.x86_64pgdg68.7 KiBpg_qualstats_14-2.0.4-1.rhel8.x86_64.rpm
pg_qualstats_142.0.3el8.x86_64pgdg67.2 KiBpg_qualstats_14-2.0.3-1.rhel8.x86_64.rpm
pg_qualstats_142.1.1el8.aarch64pgdg36.8 KiBpg_qualstats_14-2.1.1-1PGDG.rhel8.aarch64.rpm
pg_qualstats_142.1.0el8.aarch64pgdg36.1 KiBpg_qualstats_14-2.1.0-1PGDG.rhel8.aarch64.rpm
pg_qualstats_142.0.4el8.aarch64pgdg67.0 KiBpg_qualstats_14-2.0.4-1.rhel8.aarch64.rpm
pg_qualstats_142.1.1el9.x86_64pgdg36.2 KiBpg_qualstats_14-2.1.1-1PGDG.rhel9.x86_64.rpm
pg_qualstats_142.1.0el9.x86_64pgdg35.4 KiBpg_qualstats_14-2.1.0-1PGDG.rhel9.x86_64.rpm
pg_qualstats_142.0.4el9.x86_64pgdg68.6 KiBpg_qualstats_14-2.0.4-1.rhel9.x86_64.rpm
pg_qualstats_142.1.1el9.aarch64pgdg35.5 KiBpg_qualstats_14-2.1.1-1PGDG.rhel9.aarch64.rpm
pg_qualstats_142.1.0el9.aarch64pgdg34.8 KiBpg_qualstats_14-2.1.0-1PGDG.rhel9.aarch64.rpm
pg_qualstats_142.0.4el9.aarch64pgdg67.0 KiBpg_qualstats_14-2.0.4-1.rhel9.aarch64.rpm
pg_qualstats_142.1.1el10.x86_64pgdg36.6 KiBpg_qualstats_14-2.1.1-2PGDG.rhel10.x86_64.rpm
pg_qualstats_142.1.1el10.aarch64pgdg36.3 KiBpg_qualstats_14-2.1.1-2PGDG.rhel10.aarch64.rpm
postgresql-14-pg-qualstats2.1.3d12.x86_64pgdg57.2 KiBpostgresql-14-pg-qualstats_2.1.3-1.pgdg12+1_amd64.deb
postgresql-14-pg-qualstats2.1.3d12.aarch64pgdg56.1 KiBpostgresql-14-pg-qualstats_2.1.3-1.pgdg12+1_arm64.deb
postgresql-14-pg-qualstats2.1.3d13.x86_64pgdg57.3 KiBpostgresql-14-pg-qualstats_2.1.3-1.pgdg13+1_amd64.deb
postgresql-14-pg-qualstats2.1.3d13.aarch64pgdg56.3 KiBpostgresql-14-pg-qualstats_2.1.3-1.pgdg13+1_arm64.deb
postgresql-14-pg-qualstats2.1.3u22.x86_64pgdg61.0 KiBpostgresql-14-pg-qualstats_2.1.3-1.pgdg22.04+1_amd64.deb
postgresql-14-pg-qualstats2.1.3u22.aarch64pgdg59.5 KiBpostgresql-14-pg-qualstats_2.1.3-1.pgdg22.04+1_arm64.deb
postgresql-14-pg-qualstats2.1.3u24.x86_64pgdg54.6 KiBpostgresql-14-pg-qualstats_2.1.3-1.pgdg24.04+1_amd64.deb
postgresql-14-pg-qualstats2.1.3u24.aarch64pgdg53.7 KiBpostgresql-14-pg-qualstats_2.1.3-1.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 pg_qualstats;		# install via package name, for the active PG version

pig install pg_qualstats -v 18;   # install for PG 18
pig install pg_qualstats -v 17;   # install for PG 17
pig install pg_qualstats -v 16;   # install for PG 16
pig install pg_qualstats -v 15;   # install for PG 15
pig install pg_qualstats -v 14;   # install for PG 14

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'pg_qualstats';

Create this extension with:

CREATE EXTENSION pg_qualstats;

Usage

pg_qualstats: predicate statistics collector for PostgreSQL

pg_qualstats keeps statistics on predicates found in WHERE clauses and JOIN conditions. It tracks which columns are most frequently queried and which are queried together, enabling index recommendations.

Viewing Predicate Statistics

-- Raw predicate statistics for current database
SELECT * FROM pg_qualstats;

-- Human-readable aggregated form
SELECT * FROM pg_qualstats_pretty;

-- Aggregated per-attribute statistics
SELECT * FROM pg_qualstats_all;

-- Predicates aggregated by query
SELECT * FROM pg_qualstats_by_query;

Index Advisor

Generate index suggestions based on collected predicate statistics:

-- Suggest indexes (filtering predicates with >1000 rows and >30% selectivity)
SELECT v FROM json_array_elements(
    pg_qualstats_index_advisor(min_filter => 50)->'indexes') v;

-- Show predicates that couldn't be optimized
SELECT v FROM json_array_elements(
    pg_qualstats_index_advisor(min_filter => 50)->'unoptimised') v;

Utility Functions

-- Get stored query text for a queryid
SELECT pg_qualstats_example_query(queryid);

-- Get all stored query texts
SELECT * FROM pg_qualstats_example_queries();

-- Reset all statistics
SELECT pg_qualstats_reset();

Configuration

ParameterDefaultDescription
pg_qualstats.enabledtrueEnable/disable collection
pg_qualstats.track_constantstrueTrack individual constant values
pg_qualstats.max1000Maximum tracked predicates and query texts
pg_qualstats.resolve_oidsfalseResolve OIDs at query time (uses more space)
pg_qualstats.track_pg_catalogfalseTrack predicates on pg_catalog objects
pg_qualstats.sample_rate-1Fraction of queries to sample (-1 = auto: 1/max_connections)
Last updated on