I have some webtop testers that are performing searches that bring back many thousands of results (don't ask me why they like to bring back this many, they just do). Anyway they want to view more than the standard 10,50,100 items per page so we have added in an option for 500 and 1000 in the items per page dropdown.
Now for example a user runs a query which returns in about 2 seconds 3,500 records and the display defaults to 10 items per page. The user then user clicks on the items per page dropdown in the search results page and changes it to 500. Then they have to wait for over 1 minute for the page to populate (this is the main issue). You may ask why people would want to see 500 records on one page but "they just do" is the answer to that one.
I should make it clear at this point that the database query completes in less than 2 seconds, its re-ordering all the info on the page (searchresults.jsp) that's taking the time here so adding an index on column "blah blah" in oracle is not going to help. Ie. the holdup is on the application server tier. We are only retrieving 5 attributes (and i can't reduce that amount)
Basically i need to try and speed this up a bit. We can't change the dfc.search.max_results* value in dfc.props as they want to see "all" the results.
One thing i can customise is JAVA_OPTS in catalina.sh. I have 8GB available on my server. Looking on powerlink there are a lot of conflicting posts about the optimum settings for JAVA_OPTS.
Can someone make any other suggestions to speed up the result when the user changes the "items per page" to 500?
Do you have pre-conditions that get executed for each result row? If yes, make sure that they do not query the docbase. Ideally, these should be able to work entirely locally (e.g. pure java and access only the WDK cache).