Updating analyze endpoint - #5658
Conversation
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 58bbf5e.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
PR Reviewer Guide 🔍(Review updated until commit 3954423)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to 3954423 Explore these optional code suggestions:
Previous suggestionsSuggestions up to commit 6c8e52b
Suggestions up to commit ac2182c
Suggestions up to commit 58bbf5e
|
Signed-off-by: Krish Gandhi <kjg2352@gmail.com>
Signed-off-by: Krish Gandhi <kjg2352@gmail.com>
a585c62 to
ac2182c
Compare
|
Persistent review updated to latest commit ac2182c |
Signed-off-by: Krish Gandhi <kjg2352@gmail.com>
|
Persistent review updated to latest commit 6c8e52b |
Signed-off-by: Krish Gandhi <kjg2352@gmail.com>
|
Persistent review updated to latest commit 3954423 |
Description
operator_ treefromanalyzeanalyzeresponseanalyzeThis PR improves correctness of the
analyzeendpoint, addressing theoperator_treecorrectness issue mentioned in #5568. Additionally, this PR enhancesanalyzeby providing rule-based query optimization recommendations in the response.Example Query and Response
The response of this will be as follows (logical and physical plans are trimmed for brevity):
Recommendations Implemented
node.nodecontains "filter" or "project";rows_out / rows_in > xx = 0.95(INEFFECTIVE_FILTER_MAX_PASS_RATIO)Filter only dropped <pct>% of rowsratio > x), CRITICAL (ratio >= z)node.nodecontains "join";rows_out / rows_in > xx = 5.0(JOIN_EXPLOSION_RATIO),z = 20.0(JOIN_EXPLOSION_CRITICAL_RATIO)Join expanded <rows_in> rows into <rows_out> rows (<ratio>×)node.nodecontains "sort";duration(node) / profile.phases.execute.time_ms > xandrows_in > yx = 0.20(EXPENSIVE_SORT_TIME_FRACTION),y = 50,000(EXPENSIVE_SORT_MIN_ROWS)Sorting <rows_in> rows took <duration> ms (<pct>% of execution)argmax(duration(node)) / profile.phases.execute.time_ms > xx = 0.75(BOTTLENECK_TIME_FRACTION)<node> took <duration> ms (<pct>% of execution)profile.phases.execute.time_ms < profile.phases.optimize.time_msandprofile.phases.optimize.time_ms > xx = 75ms (OPTIMIZE_DOMINATES_MIN_MS)Query planning took <optimize> ms vs <execute> ms executingRelated Issues
#5568
#5500
#4343
#5044
#5688
Check List
--signoffor-s.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.