name: plain-optimize description: Captures and analyzes performance traces to identify slow queries and N+1 problems. Use when analyzing performance or optimizing database queries.
Performance Optimization Workflow
1. Capture Traces
Make a request with tracing enabled:
uv run plain request /path --user 1 --header "Observer: persist"
2. Find Traces
uv run plain observer traces --request-id <request-id>
3. Analyze Trace
uv run plain observer trace <trace-id> --json
4. Identify Bottlenecks
Look for:
- N+1 queries (many similar queries)
- Slow database queries
- Missing indexes
- Unnecessary work in hot paths
5. Apply Fixes
- Add
select_related()/prefetch_related()for N+1 - Add database indexes for slow queries
- Cache expensive computations
6. Verify Improvement
Re-run the trace and compare.