I had an idea.
Have a look at the code in org.h2.jdbc.JdbcResultSet at line 2856.
Replace
if (columnCount >= 3) {
with
if (columnCount * result.getRowCount() >= 10) {
and tell us what your performance profile looks like, and if it's any
better.
You might need to play with the constant a little bit.
Basically, for small numbers of rows*columns, it's cheaper to call
equalsIgnoreCase() than it is to call toUpper()
On 2012-04-23 10:01, Carl Hasselskog wrote:
Hi,
I've noticed that when I make queries that return just a single row
(or very few rows) then H2 spends a fair amount of time in
JdbcResultSet.getColumnIndex(String columnLabel). I've profiled it and
noticed that a big part of that is spent
in StringUtils.toUpperEnglish(String s). It does this despite the fact
that I've specified DATABASE_TO_UPPER=FALSE in the URL. A potential
performance improvement could be to not
call StringUtils.toUpperEnglish(String s) if
DbSettings.databaseToUpper==false. I guess that would be more correct
in a semantic sense as well.
Regards
Carl Hasselskog
--
You received this message because you are subscribed to the Google
Groups "H2 Database" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/h2-database/-/QqDpmEkg1gEJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.