Jeff, 

Thanks for pointing out the latest doc. I referred to 2.1.7's doc. I fixed a problem, and now confirmed PreparedStatement is created as many as calling executeBatch(). However, batch size 20 is too inefficient, so I bumped it up to much larger number. This may be trade off between the size of a transaction and cost of creation of PreparedStatement, but the number should be much bigger than I thought in case of HSQLDB. 

Kenji


On Aug 2, 2006, at 12:32 PM, Jeff Butler wrote:

If you use a batch, then the prepared statement will be reused.  The latest developer guide has lots of information about batches.
 
Jeff Butler


 
On 8/2/06, Kenji Nakamura <[EMAIL PROTECTED]> wrote:
Hi,

I'm evaluating iBatis 2.1.7, and encountered a performance problem.
The benchmark is simply taking a sequential file with approximately
16,000 lines, and populate them into HSQLDB (1.8.0.1) with 20 lines
of batch. I see iBatis version is two to three times slower than
plain vanilla JDBC version.
I put a profiler, and it indicates
com.ibatis.sqlmap.engine.execution.SqlExecutor#excuteUpdate() creates
an instance of PreparedStatement every time calling
SqlMapClient#insert(), and it is actually created at line 77 of the
method.
Is there a way to keep an instance of PreparedStatement for an Id and
reuse it? At least creation of PreparedStatement isn't a cheap
operation in HSQLDB, which takes up 51% of whole execution time in my
benchmark.

Thanks in advance,

Kenji



Reply via email to