Agent Skills: PostgreSQL Performance Skill

Optimize PostgreSQL performance - EXPLAIN ANALYZE, indexing, query tuning

postgresqlperformance-tuningquery-optimizationindexingexplain-analyze
databaseID: pluginagentmarketplace/custom-plugin-postgresql/postgresql-performance

Skill Files

Browse the full folder contents for postgresql-performance.

Download Skill

Loading file tree…

skills/postgresql-performance/SKILL.md

Skill Metadata

Name
postgresql-performance
Description
Optimize PostgreSQL performance - EXPLAIN ANALYZE, indexing, query tuning

PostgreSQL Performance Skill

Atomic skill for query optimization

Overview

Production-ready patterns for EXPLAIN analysis, index design, and configuration tuning.

Prerequisites

  • PostgreSQL 16+
  • pg_stat_statements extension

Parameters

parameters:
  operation:
    type: string
    required: true
    enum: [analyze_query, create_index, tune_config, diagnose]
  target_time_ms:
    type: integer
    default: 100

Quick Reference

EXPLAIN Commands

EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM users WHERE email = 'test@example.com';

Index Types

| Use Case | Type | Example | |----------|------|---------| | Equality | B-tree | CREATE INDEX idx ON t(col) | | JSONB | GIN | USING GIN(data jsonb_path_ops) | | Time-series | BRIN | USING BRIN(created_at) |

Key Metrics

| Metric | Healthy | Warning | |--------|---------|---------| | Seq Scan rows | < 10K | > 100K | | Buffer hit | > 99% | < 95% | | Planning time | < 10ms | > 100ms |

Diagnostic Queries

-- Slow queries
SELECT query, mean_exec_time FROM pg_stat_statements ORDER BY mean_exec_time DESC LIMIT 10;

-- Unused indexes
SELECT indexrelname, idx_scan FROM pg_stat_user_indexes WHERE idx_scan = 0;

-- Table bloat
SELECT tablename, n_dead_tup FROM pg_stat_user_tables WHERE n_dead_tup > 10000;

Troubleshooting

| Problem | Cause | Solution | |---------|-------|----------| | Seq Scan | Missing index | Create index | | High buffer reads | Cold cache | Increase shared_buffers | | Wrong estimates | Stale stats | Run ANALYZE |

Usage

Skill("postgresql-performance")