Skip to content

Rule 7: Spill time-based analysis replaces write-count threshold#341

Merged
erikdarlingdata merged 1 commit intodevfrom
fix/rule7-spill-time-analysis
Feb 27, 2026
Merged

Rule 7: Spill time-based analysis replaces write-count threshold#341
erikdarlingdata merged 1 commit intodevfrom
fix/rule7-spill-time-analysis

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Spill severity now based on operator time as % of statement elapsed time (Warning >= 10%, Critical >= 50%)
  • Calculates operator-own elapsed by subtracting child time in row mode, skipping exchange operators (timing bugs)
  • Uses QueryTimeStats.ElapsedTimeMs for statement total time
  • Applied to both Dashboard and Lite PlanAnalyzer

Test plan

  • Dashboard builds clean (0 errors)
  • Lite builds clean (0 errors)
  • Load plan with known spill (09b Big Grant String Columns) and verify tooltip shows operator time and percentage

🤖 Generated with Claude Code

… analysis

Spill severity is now based on what percentage of statement elapsed time
the spilling operator accounts for (Warning >= 10%, Critical >= 50%).

Uses QueryTimeStats.ElapsedTimeMs for statement time and calculates
operator-own time by subtracting child elapsed (row mode) or using
elapsed directly (batch mode). Skips Parallelism exchange operators
when subtracting child time due to known timing bugs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 153ccc7 into dev Feb 27, 2026
3 checks passed
@erikdarlingdata erikdarlingdata deleted the fix/rule7-spill-time-analysis branch February 27, 2026 23:01
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