diff --git a/Dashboard/Services/PlanAnalyzer.cs b/Dashboard/Services/PlanAnalyzer.cs index 6c3bdc23..ae156aae 100644 --- a/Dashboard/Services/PlanAnalyzer.cs +++ b/Dashboard/Services/PlanAnalyzer.cs @@ -304,7 +304,8 @@ private static void AnalyzeNode(PlanNode node, PlanStatement stmt) { var maxThread = node.PerThreadStats.OrderByDescending(t => t.ActualRows).First(); var skewRatio = (double)maxThread.ActualRows / totalRows; - if (skewRatio >= 0.9 && node.PerThreadStats.Count >= 4) + var skewThreshold = node.PerThreadStats.Count == 2 ? 0.75 : 0.50; + if (skewRatio >= skewThreshold) { node.Warnings.Add(new PlanWarning { diff --git a/Lite/Services/PlanAnalyzer.cs b/Lite/Services/PlanAnalyzer.cs index 9db6f722..0aec572b 100644 --- a/Lite/Services/PlanAnalyzer.cs +++ b/Lite/Services/PlanAnalyzer.cs @@ -304,7 +304,8 @@ private static void AnalyzeNode(PlanNode node, PlanStatement stmt) { var maxThread = node.PerThreadStats.OrderByDescending(t => t.ActualRows).First(); var skewRatio = (double)maxThread.ActualRows / totalRows; - if (skewRatio >= 0.9 && node.PerThreadStats.Count >= 4) + var skewThreshold = node.PerThreadStats.Count == 2 ? 0.75 : 0.50; + if (skewRatio >= skewThreshold) { node.Warnings.Add(new PlanWarning {