You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Feng Zhu (Jira)" <ji...@apache.org> on 2019/10/30 07:34:00 UTC

[jira] [Comment Edited] (CALCITE-3460) Poor performance in RexReplacer for large queries

    [ https://issues.apache.org/jira/browse/CALCITE-3460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16962782#comment-16962782 ] 

Feng Zhu edited comment on CALCITE-3460 at 10/30/19 7:33 AM:
-------------------------------------------------------------

(1)How about to use Map instead of List?

(2)Are the temporary objects produced by recursive call?

It may be difficult to write tests:)


was (Author: donnyzone):
(1)How about to use Map instead of List?

(2)Are the temporary objects produced by recursive call?

It may be difficult to wrting tests:)

> Poor performance in RexReplacer for large queries
> -------------------------------------------------
>
>                 Key: CALCITE-3460
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3460
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Haisheng Yuan
>            Priority: Major
>
> We have queries that have tens of thousands of RexCalls. reducibleExps.indexOf(call) is an O(n) operation, which takes 50% of the running time, causing the query runs for ever until timed out.
> In RexShuttle, ImmutableList iterator creation in {{visitList}} takes another 5~7% of running time, and it is creating millions of temporary iterator object, not only time consuming, but also memory consuming.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)