You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Wait stats never become findings: BenefitScorer computes a benefit for each wait but emits no warning #4516
Part of #4511, the sync of plan analysis changes from PerformanceStudio (PS) to PerformanceMonitor (PM).
Summary
BenefitScorer.ScoreWaitStats (BenefitScorer.cs:450) computes a benefit percentage for each wait in an actual plan, and it stores the result in stmt.WaitBenefits. No code turns a wait into a PlanWarning. So a query that spent most of its time waiting on I/O or locks gets no finding about the wait.
PerformanceStudio
erikdarlingdata/PerformanceStudio@1391589 adds EmitWaitStatWarnings. It emits one "Wait: " finding for each wait, with the wait time and count. For PAGEIOLATCH_* waits, it adds the average time per wait. Severity comes from the benefit: Critical at 50% or more, Warning at 10% or more, else Info.
erikdarlingdata/PerformanceStudio@d45a6a6 moves the wait descriptions to a curated WaitStats.json resource, which WaitStatsConfig reads. It deletes the interim WaitStatsKnowledge.cs.
Port
Port the end state, not the interim file. The descriptions are sparse on purpose, so the port is mostly the mechanism and the severity tiers. Size L. The benefit for external and preemptive waits is too low in PM today, and the issue that links here covers it.
At 1899737f. dev has no later change to PerformanceMonitor.PlanAnalysis.
Fixed by #4555 (0cb8d87), so this issue is closing. Each significant wait type in an actual plan becomes a "Wait: " finding with a severity from its estimated benefit and a description from WaitStats.json, matching PerformanceStudio. It is visible now that the scorer runs at every entry point (#4552).
Activity
Point the wait-stats file's issue reference at PerformanceStudio (#4516)
Plan analysis: wait stats become findings, and external and preemptiv…
erikdarlingdata commentedon Sep 28, 2026
Closed by the watcher: delivered in PR #4555, merged to dev.
erikdarlingdata commentedon Sep 28, 2026
Claude posting for Erik Darling.
Fixed by #4555 (0cb8d87), so this issue is closing. Each significant wait type in an actual plan becomes a "Wait: " finding with a severity from its estimated benefit and a description from WaitStats.json, matching PerformanceStudio. It is visible now that the scorer runs at every entry point (#4552).