diff --git a/fe/fe-core/src/main/java/com/starrocks/sql/optimizer/rule/tree/ApplyTuningGuideRule.java b/fe/fe-core/src/main/java/com/starrocks/sql/optimizer/rule/tree/ApplyTuningGuideRule.java index 3c4122d3a031e1..85162676096b62 100644 --- a/fe/fe-core/src/main/java/com/starrocks/sql/optimizer/rule/tree/ApplyTuningGuideRule.java +++ b/fe/fe-core/src/main/java/com/starrocks/sql/optimizer/rule/tree/ApplyTuningGuideRule.java @@ -17,6 +17,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.starrocks.common.Pair; +import com.starrocks.common.profile.Tracers; import com.starrocks.qe.ConnectContext; import com.starrocks.qe.SessionVariable; import com.starrocks.qe.feedback.OperatorTuningGuides; @@ -57,6 +58,14 @@ public OptExpression rewrite(OptExpression root, TaskContext taskContext) { return root; } + if (!tuningGuides.isEmpty()) { + if (!tuningGuides.isUseful()) { + Tracers.record("CandidateTuningGuides", "Tuning guides are useless"); + } else { + Tracers.record("CandidateTuningGuides", tuningGuides.getTuneGuidesInfo(true)); + } + } + // delete the useless tuning guides if (!tuningGuides.isUseful()) { PlanTuningAdvisor.getInstance().deleteTuningGuides(tuningGuides.getOriginalQueryId()); diff --git a/test/sql/test_feedback/R/test_join_feedback b/test/sql/test_feedback/R/test_join_feedback index 07782f89a060b1..d16157a26774ae 100644 --- a/test/sql/test_feedback/R/test_join_feedback +++ b/test/sql/test_feedback/R/test_join_feedback @@ -57,6 +57,10 @@ function: assert_trace_values_contains("select count(*) from (select * from c1_s -- result: None -- !result +function: assert_trace_values_contains("select count(*) from (select * from c1_skew t1 join (select * from c1_skew where c1 = 'f') t2 on t1.c2 = t2.c2) t", "CandidateTuningGuides") +-- result: +None +-- !result truncate plan advisor; -- result: [REGEX]Clear all plan advisor in FE.* diff --git a/test/sql/test_feedback/T/test_join_feedback b/test/sql/test_feedback/T/test_join_feedback index 2873bf5777c7cd..e10be7046ec3ed 100644 --- a/test/sql/test_feedback/T/test_join_feedback +++ b/test/sql/test_feedback/T/test_join_feedback @@ -27,4 +27,5 @@ function: assert_explain_not_contains("select count(*) from (select * from c1_sk alter plan advisor add select count(*) from (select * from c1_skew t1 join (select * from c1_skew where c1 = 'f') t2 on t1.c2 = t2.c2) t; function: assert_explain_contains("select count(*) from (select * from c1_skew t1 join (select * from c1_skew where c1 = 'f') t2 on t1.c2 = t2.c2) t", "RightChildEstimationErrorTuningGuide") function: assert_trace_values_contains("select count(*) from (select * from c1_skew t1 join (select * from c1_skew where c1 = 'f') t2 on t1.c2 = t2.c2) t", "RightChildEstimationErrorTuningGuide") +function: assert_trace_values_contains("select count(*) from (select * from c1_skew t1 join (select * from c1_skew where c1 = 'f') t2 on t1.c2 = t2.c2) t", "CandidateTuningGuides") truncate plan advisor;