Sql optimization patterns
Skill karim-bhalwani/agent-skills-collection/skills/sql-optimization-patterns
Specialist in SQL query optimization—index strategies, EXPLAIN analysis, query tuning. Transforms slow queries into fast ones through systematic diagnosis and targeted optimization.From its SKILL.md
npx -y skills add karim-bhalwani/agent-skills-collection --skill sql-optimization-patternsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.1 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
SQL Optimization Patterns
Specialist in diagnosing and fixing SQL performance bottlenecks through query plan analysis and indexing strategies.
When to Use This Skill
Use when:
- SQL queries exceed SLA or performance requirements
- Need to diagnose slow queries using EXPLAIN analysis
- Designing database schemas and indexing strategies for analytics workloads
- Reducing database costs through query efficiency
- Optimizing joins, aggregations, or complex analytical queries
- Investigating full table scans and expensive operations
- Implementing index strategies for high-performance reads
- Performance debugging when queries are slow in production
Core Capabilities
- Query Plan Analysis - Read EXPLAIN output to identify bottlenecks
- Indexing Strategies - Design B-tree, hash, GIN, BRIN indexes for query patterns
- Join Optimization - Choose strategies (nested loop, hash, merge) based on data size
- Schema Design - Denormalization, partitioning, materialized views for analytics
- Query Refactoring - Rewrite slow queries using window functions, CTEs, batch operations
- Cost Reduction - Improve query efficiency to reduce compute costs and resource usage
Reference Guides
For detailed implementation guidance, see:
EXPLAIN & Query Plans
Use when: Analyzing slow query performance
Covers:
- Understanding EXPLAIN output across PostgreSQL, MySQL, Snowflake, BigQuery
- Key metrics (Seq Scan, Index Scan, cost, rows, execution time)
- Reading execution plans from bottom-up
- Identifying bottlenecks and cardinality issues
Indexing Strategies
Use when: Designing indexes for analytics workloads
Covers:
- Index types (B-tree, hash, GIN, BRIN, covering, partial)
- Selectivity and composite index design
- Partial and expression indexes
- Avoiding over-indexing and unused indexes
- Index maintenance (ANALYZE, VACUUM, reindex)
Query Optimization Patterns
Use when: Rewriting queries for better performance
Covers:
- Eliminating N+1 query problems
- Cursor-based pagination (vs OFFSET)
- Optimizing COUNT and GROUP BY
- Transforming correlated subqueries
- Using CTEs and window functions
- Batch processing patterns
Advanced Techniques
Use when: Using advanced database features
Covers:
- Materialized views for pre-computation
- Table partitioning for large tables
- Query hints and optimization control
- Performance monitoring and statistics
- Connection pooling and tuning
Quick Decision Guide
| Problem | Reference |
|---|---|
| Query is slow | EXPLAIN & Query Plans |
| Need to add indexes | Indexing Strategies |
| Rewrite query efficiently | Query Optimization Patterns |
| Advanced optimization | Advanced Techniques |
Optimization Workflow
Phase 1: Diagnosis
- Capture slow query with
EXPLAIN ANALYZE - Identify bottleneck: sequential scan, expensive join, high cost estimate
- Understand data volumes and selectivity
Phase 2: Root Cause Analysis
- Check for missing indexes on filter/join columns
- Review join strategy (nested loop vs hash vs merge)
- Analyze cardinality estimates vs actual rows
Phase 3: Optimization
- Add indexes (B-tree, hash, GIN, BRIN as appropriate)
- Rewrite query to reduce complexity (CTEs, window functions)
- Consider denormalization or materialized views
- Measure impact: runtime, cost, resource usage
Phase 4: Validation
- Test optimization with production data volume
- Monitor side effects (index maintenance overhead, storage)
- Document solution and performance improvement
Best Practices
Performance Analysis
- ✅ Establish Baseline: Measure query runtime, cost, resource usage before optimization
- ✅ Use EXPLAIN ANALYZE: Always run with ANALYZE; never guess at performance
- ✅ Understand Costs: Lower query cost estimate usually correlates with faster execution
- ✅ Check Selectivity: Filters with poor selectivity waste I/O; indexes on selective columns help most
Indexing Strategy
- ✅ Index Selective Columns: Indexes help when filtering/joining on high-cardinality columns
- ✅ Avoid Over-Indexing: Every index slows writes; add only indexes that measurably help
- ✅ Composite Indexes: Order by selectivity (most selective first) and join key order
- ✅ Partial Indexes: Index only relevant subset (e.g., WHERE active = true)
Query Optimization
- ✅ Filter Early: Push WHERE clauses down before joins
- ✅ Minimize Shuffles: Avoid sorting/aggregating large result sets; use indexes for ordering
- ✅ Use Window Functions: More efficient than self-joins for ranking, running totals
- ✅ Denormalize Strategically: Trade write complexity for read speed when appropriate
Common Pitfalls
| Pitfall | Root Cause | Fix |
|---|---|---|
| Missing index | Obvious filter on non-indexed column | Add index on frequently filtered columns |
| Unused index | Index added but never used | Use EXPLAIN; verify index is selected by planner |
| Indexing without EXPLAIN | Adding indexes blindly | Run EXPLAIN ANALYZE before/after; confirm improvement |
| Bad join order | Joining large table first | Filter before joins; use EXPLAIN to understand order |
| Over-indexing | Every column indexed | Remove unused indexes; focus on high-value queries |
| Stale statistics | Query plan based on old stats | Run VACUUM ANALYZE regularly |
Dependencies
- senior-data-engineer - For schema design and performance mentorship
What ships with it: 4 files
17.6 KB alongside SKILL.md
references/
- advanced-techniques.md3.9 KB
- explain-query-plans.md4.0 KB
- indexing-strategies.md4.6 KB
- query-optimization.md5.2 KB