commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bernd Eckenfels <e...@zusammenkunft.net>
Subject Re: (DBUTILS-131) Speedup query calls without parameters
Date Sat, 10 Dec 2016 22:36:07 GMT
Hello,
What database system/driver did you test? Did you test repeating statements or not. Because
some drivers optimize statement caches only for prepared statements. This also means it should
be configurable.

Gruss
Bernd
-- 
http://bernd.eckenfels.net




On Sat, Dec 10, 2016 at 10:34 PM +0100, "Yair Lenga (JIRA)" <jira@apache.org> wrote:










Yair Lenga created DBUTILS-131:
----------------------------------

             Summary: Speedup query calls without parameters
                 Key: DBUTILS-131
                 URL: https://issues.apache.org/jira/browse/DBUTILS-131
             Project: Commons DbUtils
          Issue Type: Improvement
    Affects Versions: 1.6
            Reporter: Yair Lenga


The current 'query' methods takes sql (with ? placeholders), and list of parameters to fill
the place holders. The implementation is using a prepared statement to speed up the call.

I've observed that for statements without any ? placeholders, performance can be improved
by using the statement interface. Using this path eliminate extra roundtrip and work that
is needed to create the prepared statement (I believe it's implemented - on Sybase - as light
weight stored proc). 

My proposal: modify the code in the method that implement the query:
private  T  [More ...] query(Connection conn, boolean closeConn, String sql, ResultSetHandler
rsh, Object... params)

and use 'Statement', instead of preparedStatement if there are no params (params == null ||
params.size() == 0 )

In my application, large number of (parameter-less) SQL statement are generated on-the-fly,
and the result set is converted to BeanList. We measured 50% speedup using statements, instead
of prepared statements for this case.

We will be happy to submit a fix or help with testing.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)






Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message