Groups | Blog | Home
all groups > sql server reporting services > january 2006 >

sql server reporting services : Subreport performance



TJ
1/12/2006 9:26:07 AM
I've worked with Crystal and Access and now SRS and I have a question
regarding subreports in SRS.

Take a standard header/details report in which the details are a subreport
(in this case we can't put all the records in one Stored Proc. Do the
parameter link and it all works fine except when we watch it in profiler it
acts like crystal, making individual SP calls to return the data for each
detail section. This is where we find performance degrades.

Our particular circumstance is that we will have a header with 3-4 detail
sections that all share a common parameter with the header and filter to that
parameter. Because of this configuration is makes it impossible to return a
single dataset with all the relevant data. The header itself will return
500+ records and combined with the 3-4 detail sections could be over (500 x
4) 2000 sp calls. Sloooow.

Seems to us that MS Access did the best job at this.

TJ
1/12/2006 11:12:02 AM
Bruce,

Thank you for your reply. I agree with your statements, however in this
particular case we write budgeting solutions and this report (among others)
prints the budget details that go into a large budget binder.

In prior projects we have limited the parameters to not allow the user to
return to many records back. For instance instead of allowing an "<all>"
parameter value we would require that they select at least one department.
It's a little maddening to them to have to print this report for each
department.

It just seems so inefficient.

+++++++++++++

[quoted text, click to view]
Bruce L-C [MVP]
1/12/2006 12:22:10 PM
Not much you can do about this. That is how it works.

From a design perspective you could ask yourself if the user is really
browsing through 500 records. Or, is there a way to provide them with a way
to get to the records they really want to look at. Another way is to start
off with another report that they browse through and then use jump to report
when they want more information. This pattern is very understandable to
users and is very fast. I use drill through all the time, much more than
drill down. Most reports I use that have subreports I try to have as the
detail report.

It sure sounds to me like the report has a lot of detail that a human is not
going to look at.


--
Bruce Loehle-Conger
MVP SQL Server Reporting Services

[quoted text, click to view]

Bruce L-C [MVP]
1/12/2006 1:19:06 PM
Understood. If the performance is poor you could always schedule a snapshot
and then have some parameters that filter (versus a query parameter).


--
Bruce Loehle-Conger
MVP SQL Server Reporting Services

[quoted text, click to view]

TJ
1/12/2006 4:12:01 PM
Good idea.

Wouldn't it be great if MSFT could put a little more intelligent design in
these types of situations? I.e. Parent Query results would drive one
resultset for the children and then split those results off to the right
parent child combos?

Hope that makes some sense. Thanks for the ideas.

[quoted text, click to view]
AddThis Social Bookmark Button