[ https://issues.apache.org/jira/browse/HIVE-16757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16025130#comment-16025130 ]
Remus Rusanu commented on HIVE-16757: ------------------------------------- I haven't look into it, will see > Use memoization in HiveRelMdRowCount.getRowCount > ------------------------------------------------ > > Key: HIVE-16757 > URL: https://issues.apache.org/jira/browse/HIVE-16757 > Project: Hive > Issue Type: Bug > Components: Query Planning > Reporter: Remus Rusanu > Assignee: Remus Rusanu > Attachments: HIVE-16757.01.patch, HIVE-16757.02.patch > > > On complex queries HiveRelMdRowCount.getRowCount can get called many times. > since it does not memoize its result and the call is recursive, it results in > an explosion of calls. for example a query with 49 joins, during join > ordering (LoptOtimizerJoinRule) the HiveRelMdRowCount.getRowCount gets called > 6442 as a top level call, but the recursivity exploded this to 501729 calls. > Memoization of the rezult would stop the recursion early. In my testing this > reduced the join reordering time for said query from 11s to <1s.. -- This message was sent by Atlassian JIRA (v6.3.15#6346)