| 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
Scripts
python scripts/sql_formatter.py "SELECT..."
python scripts/query_analyzer.py queries.log [--json]
psql -c "EXPLAIN ANALYZE ..." | python scripts/explain_parser.py --postgres
mysql -e "EXPLAIN FORMAT=JSON ..." | python scripts/explain_parser.py --mysql
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
WHERE → where/filter with operators
JOIN → include/preload/prefetch_related
ORDER BY → order/orderBy
LIMIT/OFFSET → limit/offset or cursor-based
Performance issues: Run query_analyzer.py on logs, check anti_patterns.md for solutions