Skip to content

Strip operator-level wait noise, add query classification#217

Merged
erikdarlingdata merged 1 commit intodevfrom
fix/wait-stats-cleanup
Apr 10, 2026
Merged

Strip operator-level wait noise, add query classification#217
erikdarlingdata merged 1 commit intodevfrom
fix/wait-stats-cleanup

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Remove GetTopWaitContext calls from Rules 1, 5, 11, 16 — statement-level waits can't be attributed to individual operators, so the "Dominant wait" text on every warning was noise
  • Keep Rule 11 I/O severity elevation (scan + PAGEIOLATCH at 50%+ cost → Critical)
  • Add wait profile classification to the triage summary card: "I/O bound", "CPU bound", "parallelism bound", or "lock contention bound" based on wait category percentages

Test plan

  • 75/75 unit tests passing
  • Rule 11 severity elevation verified (I/O waits elevate, CPU waits don't)
  • Verify triage card shows classification on plans with diverse wait profiles

🤖 Generated with Claude Code

… card

Remove GetTopWaitContext calls from Rules 1, 5, 11, and 16 — statement-level
waits can't be attributed to individual operators, so appending the dominant
wait type to every warning was noise rather than analysis.

Keep Rule 11 I/O severity elevation (scan + PAGEIOLATCH at 50%+ cost →
Critical) since a dominant scan with I/O waits is a defensible correlation.

Add wait profile classification to the triage summary card — categorizes
queries as "I/O bound", "CPU bound", "parallelism bound", or "lock
contention bound" based on wait category percentages (>= 30% threshold).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant