java - Best way to reduce risk of server-side report taking up too much memory -


we have service, tomcat-spring-jpa running on top of mysql.

a part of our service reports function. have different clients of different sizes , therefor, different amounts of data.

when run reports, select dates , various other parameters, send them server, , server creates pdf's, xls sheets etc.

we concerned if select date periods might take memory, made estimations , came "max time period" reports.

this not optimal number of reasons, have more time, we're looking @ alternatives.

the best i've come far have "max number of rows" instead, i.e. count(*) of query params , if data, tell user have reduce date period.

i have couple of concerns though, , hoping feedback:

  1. won't count(*) take quite memory?
  2. is there better way haven't thought about? (i don't want paging or similar, if they're running report they'd expect data)

  1. count(*) won't take significant amount of memory.

  2. i define time ranges reduce amount of data. e.g. if selected interval less 15 days it's report time interval days.

if interval more 15 days less 100 days report time interval week

if interval more 100 days less 200 days report time interval month

if interval more 200 days less 500 days report time interval qarter

if interval more 500 days report time interval year.

thus amount of rows in report reasonable if user want investigate interval deeper shorter period selected , more detailed report generated


Comments

Popular posts from this blog

java - Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not be resolved -

Round ImageView Android -

How can I utilize Yahoo Weather API in android -