Xiening Dai created CALCITE-3915:
------------------------------------
Summary: Add rule listener to report rule attempts and time at
DEBUG log level
Key: CALCITE-3915
URL: https://issues.apache.org/jira/browse/CALCITE-3915
Project: Calcite
Issue Type: Bug
Reporter: Xiening Dai
We can add a rule listener to the VolcanoPlanner for recording rule attempts
and the accumulative time for the rule firing. This would be very helpful to
debug planner performance issue (such as CALCITE-2970). The listener will only
be added under DEBUG log level.
It will produce a rule attempt summary like below -
2020-04-10 18:03:24,621 [main] DEBUG -
Rules
Attempts Time (us)
ProjectMergeRule:force_mode
1,203 1,124,242
EnumerableProjectRule(in:NONE,out:ENUMERABLE)
129 226,475
AggregatePullUpConstantsRule
84 1,949
AggregateProjectMergeRule
81 128,575
ProjectFilterTransposeRule
76 8,734
JoinPushExpressionsRule
71 10,314
FilterJoinRule:FilterJoinRule:no-filter
71 1,306
JoinPushThroughJoinRule:right
47 676
JoinPushThroughJoinRule:left
45 175,696
FilterJoinRule:FilterJoinRule:filter
41 89,381
ReduceExpressionsRule(Filter)
24 38,128
EnumerableFilterRule(in:NONE,out:ENUMERABLE)
24 52,457
EnumerableJoinRule(in:NONE,out:ENUMERABLE)
24 71,752
EnumerableMergeJoinRule(in:NONE,out:ENUMERABLE)
24 47,987
FilterProjectTransposeRule
22 55,177
JoinCommuteRule
20 70,240
EnumerableAggregateRule(in:NONE,out:ENUMERABLE)
10 26,522
AggregateExpandDistinctAggregatesRule
10 37
EnumerableTableScanRule(in:NONE,out:ENUMERABLE)
1 527
EnumerableInterpreterRule(in:BINDABLE,out:ENUMERABLE)
1 764
BindableTableScanRule
1 1,710
ExpandConversionRule
1 175
--
This message was sent by Atlassian Jira
(v8.3.4#803005)