From 025382d56ce6ee4208e0c48b492af2b1969d57e8 Mon Sep 17 00:00:00 2001 From: badboynt1 Date: Thu, 28 Nov 2024 17:17:16 +0800 Subject: [PATCH] fix --- pkg/sql/plan/stats.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/sql/plan/stats.go b/pkg/sql/plan/stats.go index 2f6d3e49e75b4..2ff50973a2645 100644 --- a/pkg/sql/plan/stats.go +++ b/pkg/sql/plan/stats.go @@ -880,50 +880,64 @@ func ReCalcNodeStats(nodeID int32, builder *QueryBuilder, recursive bool, leafNo node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity_out + node.Stats.BlockNum = leftStats.BlockNum case plan.Node_LEFT: node.Stats.Outcnt = leftStats.Outcnt node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity_out + node.Stats.BlockNum = leftStats.BlockNum case plan.Node_RIGHT: node.Stats.Outcnt = rightStats.Outcnt node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity + node.Stats.BlockNum = leftStats.BlockNum case plan.Node_DEDUP: node.Stats.Outcnt = rightStats.Outcnt node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity + node.Stats.BlockNum = leftStats.BlockNum case plan.Node_OUTER: node.Stats.Outcnt = leftStats.Outcnt + rightStats.Outcnt node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity_out + node.Stats.BlockNum = leftStats.BlockNum case plan.Node_SEMI, plan.Node_INDEX: node.Stats.Outcnt = leftStats.Outcnt * selectivity node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity_out + node.Stats.BlockNum = leftStats.BlockNum case plan.Node_ANTI: node.Stats.Outcnt = leftStats.Outcnt * (1 - rightStats.Selectivity) * 0.5 node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity_out + node.Stats.BlockNum = leftStats.BlockNum case plan.Node_SINGLE, plan.Node_MARK: node.Stats.Outcnt = leftStats.Outcnt node.Stats.Cost = leftStats.Cost + rightStats.Cost node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt node.Stats.Selectivity = selectivity_out + node.Stats.BlockNum = leftStats.BlockNum + + case plan.Node_L2: //L2 join is very time-consuming, increase the cost to get more dop + node.Stats.Outcnt = leftStats.Outcnt + node.Stats.Cost = (leftStats.Cost + rightStats.Cost) * 8 + node.Stats.HashmapStats.HashmapSize = rightStats.Outcnt + node.Stats.Selectivity = selectivity_out + node.Stats.BlockNum = leftStats.BlockNum * 8 } - node.Stats.BlockNum = leftStats.BlockNum case plan.Node_AGG: if needResetHashMapStats {