debugging-orm-queries

Converts ORM calls to raw SQL and analyzes query performance. Detects N+1 queries, missing indexes, and other anti-patterns. Use when debugging slow queries, tracing ORM-generated SQL, or optimizing database performance for Sequelize, Prisma, TypeORM (Node.js), GORM, sqlc, sqlx, ent (Go), or SQLAlchemy, Django ORM, Peewee (Python).

$ 安裝

git clone https://github.com/galihcitta/dotclaudeskills /tmp/dotclaudeskills && cp -r /tmp/dotclaudeskills/skills/debugging-orm-queries ~/.claude/skills/dotclaudeskills

// tip: Run this command in your terminal to install the skill


name: debugging-orm-queries description: Converts ORM calls to raw SQL and analyzes query performance. Detects N+1 queries, missing indexes, and other anti-patterns. Use when debugging slow queries, tracing ORM-generated SQL, or optimizing database performance for Sequelize, Prisma, TypeORM (Node.js), GORM, sqlc, sqlx, ent (Go), or SQLAlchemy, Django ORM, Peewee (Python).

Debugging ORM Queries

References

LanguageORMsReference
Node.jsSequelize, Prisma, TypeORMreferences/nodejs.md
GoGORM, sqlc, sqlx, entreferences/golang.md
PythonSQLAlchemy, Django, Peeweereferences/python.md
Anti-patternsN+1, indexes, paginationreferences/anti_patterns.md

Scripts

# Pretty-print SQL
python scripts/sql_formatter.py "SELECT..."

# Detect N+1, missing WHERE, duplicates from log file
python scripts/query_analyzer.py queries.log [--json]

# Parse EXPLAIN output (PostgreSQL or MySQL)
psql -c "EXPLAIN ANALYZE ..." | python scripts/explain_parser.py --postgres
mysql -e "EXPLAIN FORMAT=JSON ..." | python scripts/explain_parser.py --mysql

# Node.js request-scoped query tracking (see script for setup)
# Integrates with Sequelize, Prisma, TypeORM

Quick Patterns

Enable logging: Check reference for ORM-specific config (usually logging: true or echo=True)

ORM → SQL: Enable logging, run query, capture output

SQL → ORM: Map clauses to methods:

  • SELECT columns → specify fields/attributes
  • WHEREwhere/filter with operators
  • JOINinclude/preload/prefetch_related
  • ORDER BYorder/orderBy
  • LIMIT/OFFSETlimit/offset or cursor-based

Performance issues: Run query_analyzer.py on logs, check anti_patterns.md for solutions