Re: Performance issues with large ResultSet
- From: james <james.herrington@xxxxxxxxxxxxx>
- Date: Thu, 31 Jul 2008 04:30:53 -0700 (PDT)
No. But the way you're building it is the problem. Readhttp://docs.sun.com/app/docs/doc/819-3681/abebh?a=viewand you'll
understand why your code is slow: it creates lots of big String
instances only to discard them at the end of each iteration. Use a
StringBuilder instead:
StringBuilder builder = new StringBuilder();
while(rs.next()) {
// build XML
builder.append("<student studentID='");
builder.append(rs.getInt("StudentID"));
builder.append("' firstName='");
builder.append(rs.getString("FirstName"));
builder.append("' lastName='");
builder.append(rs.getString("LastName"));
builder.append("' gender='");
builder.append(rs.getString("Gender"));
builder.append("' />");}
String xmlResult = builder.toString();
Using a StringBuilder has taken off a huge amount of time and the
whole operation now takes around 2-5 seconds. Thanks
As a side note, I hope that none of your student is named O'Reilly,
because it would cause your generated XML to be invalid. Think about
escaping the XML values (seehttp://commons.apache.org/lang/api/org/apache/commons/lang/StringEsca...).
The XML is escaped I just missed that bit out of the example code for
simplicities sake.
As another side note, if your result set is really large, storing it
completely as huge XML String in memory might not be a good idea. You
might have to write it to disk instead.
I'm going to do some test's on this to see if it improves performance.
Thanks for all your help!
.
- References:
- Performance issues with large ResultSet
- From: james
- Re: Performance issues with large ResultSet
- From: Jean-Baptiste Nizet
- Performance issues with large ResultSet
- Prev by Date: Re: Terminolgy: the verb corresponding to "toString"
- Next by Date: Re: Terminolgy: the verb corresponding to "toString"
- Previous by thread: Re: Performance issues with large ResultSet
- Next by thread: Terminolgy: the verb corresponding to "toString"
- Index(es):
Relevant Pages
|