Spaces:
Sleeping
A newer version of the Gradio SDK is available: 6.18.0
title: pg_plan_cache Agent
emoji: 🐘
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.23.0
app_file: app.py
pinned: false
license: postgresql
tags:
- postgresql
- redis
- query-cache
- database
- plan-cache
- extension
short_description: Manage and monitor the pg_plan_cache PostgreSQL extension
pg_plan_cache Agent
An interactive agent for managing, monitoring, and diagnosing the pg_plan_cache PostgreSQL extension — a query execution plan cache backed by Redis.
Features
| Tab | Requires Backend? | Description |
|---|---|---|
| Normalizer | No | Normalize SQL queries and compute SHA-256 cache keys |
| Architecture | No | Visual documentation of how pg_plan_cache works |
| Cache Stats | Yes | Live hit/miss/error statistics |
| Analyze | Yes | Efficiency analysis with tuning recommendations |
| Diagnose | Yes | Full diagnostic across PostgreSQL, Redis, stats, config |
| Redis Health | Yes | Redis memory, clients, keyspace info |
| Cached Plans | Yes | List/inspect cached plan entries |
| Dependencies | Yes | Query-table dependency mappings |
| Configuration | Yes | View/manage GUC parameters |
| Invalidate | Yes | Flush plans globally or per-table |
| SQL Query | Yes | Execute read-only SELECT queries |
Demo Mode
The Normalizer and Architecture tabs work without any backend. They demonstrate the core query normalization and hashing logic that pg_plan_cache uses internally.
Live Mode
To enable all tabs, set these as Space Secrets (Settings > Variables and secrets):
| Secret | Description | Example |
|---|---|---|
PG_HOST |
PostgreSQL hostname | my-db.example.com |
PG_PORT |
PostgreSQL port | 5432 |
PG_DATABASE |
Database name | postgres |
PG_USER |
Database user | postgres |
PG_PASSWORD |
Database password | secret |
REDIS_HOST |
Redis hostname | my-redis.example.com |
REDIS_PORT |
Redis port | 6379 |
REDIS_PASSWORD |
Redis password (optional) | secret |
CLI Agent
A command-line version is also included (agent.py) with the same functionality:
pip install psycopg2-binary redis python-dotenv
cp .env.example .env # fill in credentials
python agent.py
About pg_plan_cache
pg_plan_cache is a PostgreSQL extension that caches query execution plans in Redis. It hooks into the PostgreSQL planner, normalizes queries (replacing literals with $N placeholders), computes a SHA-256 hash, and stores/retrieves serialized plans with configurable TTL and automatic schema-change invalidation.
- Source: pg_plan_cache
- PostgreSQL: 18+
- Dependencies: hiredis, Redis