[ 
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)

Reply via email to