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

Stamatis Zampetakis commented on CALCITE-4144:
----------------------------------------------

Julian was asking if you are using the 
[PreparedStatement|https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html]
 API but since you are passing from JMeter I guess you do. If you are using 
parameters (aka. bind variables) then your SQL query should contain '?'. Can 
you post the SQL query that you used so that we understand where those longs in 
the generated code come from?

> Reduce code generation and class loading overhead when getScalar in 
> JaninoRexCompiler.
> --------------------------------------------------------------------------------------
>
>                 Key: CALCITE-4144
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4144
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.21.0
>         Environment: version: calcite-core 1.21
> model: filterableTable
>            Reporter: zhangchenghui
>            Priority: Major
>              Labels: cache, scalar
>             Fix For: 1.25.0
>
>         Attachments: image-2020-07-27-22-44-44-455.png, 
> image-2020-07-27-22-45-25-350.png, image-2020-07-27-22-45-54-346.png, 
> image-2020-07-27-22-46-18-306.png
>
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> I used the FilterableTable mode in the project, but I found that the query 
> was particularly slow. I used the JProfile tool to troubleshoot the thread 
> time-consuming place, and then through the debug, I found that each request 
> took two places:
> 1、org.apache.calcite.adapter.enumerable.EnumerableInterpretable#getBindable
>  !image-2020-07-27-22-44-44-455.png! 
> This place optimizes the cache settings by setting the cache size.
> 2、org.apache.calcite.interpreter.JaninoRexCompiler#baz
>  !image-2020-07-27-22-45-25-350.png! 
> But this place is not cached, and a new expression string is used every time 
> to create it through reflection.
> JProfile tool time consumption:
>  !image-2020-07-27-22-45-54-346.png! 
> I originally wanted to add a layer of cache here, but found that the 
> expressions generated each time are different, as follows:
>  !image-2020-07-27-22-46-18-306.png! 
> So you can't use the getBindable method to directly add cache.
> Is there anything you can optimize here? For example, can you generate a 
> template class in advance, and then generate different objects through 
> different parameter values?
> Bring tea to the boss!
> Looking forward to your reply!



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

Reply via email to