Skip to content

Commit 97d7993

Browse files
Merge pull request #185 from erikdarlingdata/fix/issue-178-round2
Address round 2 #178 feedback (items 13-16)
2 parents ac8ad47 + 7607928 commit 97d7993

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/PlanViewer.Core/Services/PlanAnalyzer.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,12 @@ private static void TryOverrideSeverity(PlanWarning warning, AnalyzerConfig cfg)
124124
private static void AnalyzeStatement(PlanStatement stmt, AnalyzerConfig cfg)
125125
{
126126
// Rule 3: Serial plan with reason
127-
// Skip trivial statements (e.g., variable assignments, constant scans) — not worth warning about
127+
// Skip: trivial cost (< 0.01), TRIVIAL optimization (can't go parallel anyway),
128+
// and 0ms actual elapsed time (not worth flagging).
128129
if (!cfg.IsRuleDisabled(3) && !string.IsNullOrEmpty(stmt.NonParallelPlanReason)
129-
&& stmt.StatementSubTreeCost >= 0.01)
130+
&& stmt.StatementSubTreeCost >= 0.01
131+
&& stmt.StatementOptmLevel != "TRIVIAL"
132+
&& !(stmt.QueryTimeStats != null && stmt.QueryTimeStats.ElapsedTimeMs == 0))
130133
{
131134
var reason = stmt.NonParallelPlanReason switch
132135
{
@@ -138,11 +141,14 @@ private static void AnalyzeStatement(PlanStatement stmt, AnalyzerConfig cfg)
138141
_ => stmt.NonParallelPlanReason
139142
};
140143

144+
// Only warn (not info) when the user explicitly forced serial execution
145+
var isExplicit = stmt.NonParallelPlanReason is "MaxDOPSetToOne" or "QueryHintNoParallelSet";
146+
141147
stmt.PlanWarnings.Add(new PlanWarning
142148
{
143149
WarningType = "Serial Plan",
144150
Message = $"Query running serially: {reason}.",
145-
Severity = PlanWarningSeverity.Warning
151+
Severity = isExplicit ? PlanWarningSeverity.Warning : PlanWarningSeverity.Info
146152
});
147153
}
148154

src/PlanViewer.Web/Pages/Index.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ else
7474
{
7575
<span class="stmt-tab-cost">@s.EstimatedCost.ToString("N2")</span>
7676
}
77-
@if (s.Warnings.Count > 0)
77+
@if (GetAllWarnings(s).Count > 0)
7878
{
79-
<span class="stmt-tab-warns">@s.Warnings.Count</span>
79+
<span class="stmt-tab-warns">@GetAllWarnings(s).Count</span>
8080
}
8181
</button>
8282
}

src/PlanViewer.Web/wwwroot/css/app.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,8 @@ textarea::placeholder {
373373
margin-bottom: 0.75rem;
374374
}
375375

376-
/* Wait stats card gets extra width when present */
376+
/* Give params and waits cards extra width when populated */
377+
.insight-card.params.has-items,
377378
.insight-card.waits.has-items {
378379
grid-column: span 2;
379380
}

0 commit comments

Comments
 (0)