Back to Skills

postgresql-performance

verified

Optimize PostgreSQL performance - EXPLAIN ANALYZE, indexing, query tuning

View on GitHub

Marketplace

pluginagentmarketplace-postgresql

pluginagentmarketplace/custom-plugin-postgresql

Plugin

ultrathink

Repository

pluginagentmarketplace/custom-plugin-postgresql
1stars

skills/postgresql-performance/SKILL.md

Last Verified

January 21, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-postgresql/blob/main/skills/postgresql-performance/SKILL.md -a claude-code --skill postgresql-performance

Installation paths:

Claude
.claude/skills/postgresql-performance/
Powered by add-skill CLI

Instructions

# 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

```yaml
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
```sql
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

```sql
-- 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")
```

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
1568 chars