[fix](nerieds) avoid redundant enumeration same LogicalProject in memo#38317
[fix](nerieds) avoid redundant enumeration same LogicalProject in memo#38317morrySnow merged 1 commit intoapache:masterfrom
Conversation
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
|
run buildall |
TPC-H: Total hot run time: 39443 ms |
TPC-DS: Total hot run time: 171186 ms |
ClickBench: Total hot run time: 30.92 s |
5749ce5 to
99517db
Compare
|
run buildall |
99517db to
49b2ee9
Compare
|
run buildall |
TPC-H: Total hot run time: 39914 ms |
TPC-DS: Total hot run time: 170295 ms |
ClickBench: Total hot run time: 30.29 s |
49b2ee9 to
7cd492a
Compare
|
run buildall |
960d886 to
2c32bd4
Compare
2c32bd4 to
eea4e2e
Compare
|
run buildall |
| @@ -98,7 +98,7 @@ public Rule build() { | |||
| newTopHashConjuncts.forEach(expr -> topUsedExprIds.addAll(expr.getInputSlotExprIds())); | |||
| newTopOtherConjuncts.forEach(expr -> topUsedExprIds.addAll(expr.getInputSlotExprIds())); | |||
| Plan left = CBOUtils.newProject(topUsedExprIds, newBottomJoin); | |||
There was a problem hiding this comment.
why not apply this for both sides? Means left side's new project is a must?
There was a problem hiding this comment.
we need a project between join and join
TPC-H: Total hot run time: 40687 ms |
TPC-DS: Total hot run time: 170460 ms |
ClickBench: Total hot run time: 31.7 s |
|
run cloud_p0 |
|
run cloud_p0 |
| GroupExpressionMatching groupExpressionMatching | ||
| = new GroupExpressionMatching(rule.getPattern(), groupExpression); | ||
| for (Plan plan : groupExpressionMatching) { | ||
| if (rule.isExploration() |
There was a problem hiding this comment.
if the checking is moved here, can the logic in getJoinRules be removed?
There was a problem hiding this comment.
no, in OptimizeGroupExpressionJob we could avoid generate ApplyRuleJob at all. so remove it will generate many useless job to slow down planning
|
PR approved by anyone and no changes requested. |
|
PR approved by at least one committer and no changes requested. |
#38317) 1. use set to compare project 2. use map to store enforcer 3. avoid genarate useless project under bottom join when do join reorder
apache#38317) 1. use set to compare project 2. use map to store enforcer 3. avoid genarate useless project under bottom join when do join reorder
No description provided.