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

Shaktisinh Jhala commented on DBCP-579:
---------------------------------------

Hi [~ggregory] as discussed above, i executed our tests and captured the your 
kit snapshot with call counting enabled and i noticed that it was indeed 
calling Jdbc41Bridge.getSchema which it should not. Then i captured the 
heapdump to see what value is set for cachedSchema  and cacheState. And i 
noticed that the cacheState  was set to true as expected however, i could not 
find the variable cachedSchema defined at all. Which was bit weird. After some 
further analysis i understood that the jar file i replaced is not being picked 
up at run time. So after make necessary change, i got the performance number 
which we had with DBCP version 1.4

So we are good to close this issue with the code change you made in shared 
private jar file.

Thanks for your quick turn around.

> Performance of DelegatingConnection.prepareStatement(String) regressed 
> enormously in 2.8.0 compared to 1.4
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: DBCP-579
>                 URL: https://issues.apache.org/jira/browse/DBCP-579
>             Project: Commons DBCP
>          Issue Type: Bug
>    Affects Versions: 2.8.0
>         Environment: OS: Windows Server 2008 R2 Enterprise 
> Java: Open JDK 12.0.1
> DB: Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
>            Reporter: Shaktisinh Jhala
>            Priority: Major
>         Attachments: DBCP_v1.4.jpg, DBCP_v2.8.0.jpg, 
> WithPrivateJarFrom2.9.0.jpg
>
>
> We recently upgraded the commons DBCP from version 1.4 to latest version 
> 2.8.0. After the upgrade, we observed significant degradation in our use 
> case. After the analysis it was found that the performance of 
> DelegatingConnection.prepareStatement(String) is regressed in version 2.8.0 
> enormously compared to 1.4 where the approx time taken in 2.8.0 is 7400 
> seconds compared to approx 183 sec in 1.4.
> Looking at the Yourkit snapshot, it is observed that the newly added call 
> PoolingConnection.createKey(String) in the method 
> PoolingConnection.prepareStatement(String) is the major contributor for this 
> regression.
>  
> We took multiple snapshot and in all these snapshot we observed the 
> regression. So it was not intermittent. Also, we observed this with both the 
> our DBs (MS SQL server and PostgreSQL)
>  
> Please find attached the screenshot of YourKit Snapshot showing the Merged 
> Callees of DelegatingConnection.prepareStatement(String) taken for MS SQL 
> server with commons DBCP version 1.4 and version 2.8 for further details.



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

Reply via email to