开发者

Poor Performance Filtering Subreports in Client-Side SSRS 2008

开发者 https://www.devze.com 2023-02-26 05:54 出处:网络
I\'m attempting to translate an existing Access report into a client-side SSRS 2008 report, and I\'m experiencing terrible performance when it comes to filtering.

I'm attempting to translate an existing Access report into a client-side SSRS 2008 report, and I'm experiencing terrible performance when it comes to filtering.

By way of a little background, I'll simplify the purpose of the report. This is a simplified view of the model:

Orgainzation
     |
   Person
     |
 Credential

Organizations have people, and people have credentials. The report lists people, grouped by organization, and two of the columns listeded with a person are comma-delimited lists of the credentials they have through the organization (they're stored normalized, of course, but I'm concatenating them in the procedure that retrieves the list using the ordinary FOR XML PATH trickery). With just this, the report works fine and performs acceptably. The issue is that the existing report provides a summary of each credential type that's present in the list, along with the total quantity.

Because the two concatenated lists are different, I can't retrieve the outer results individually and just group b开发者_运维问答y them. Instead, I have to do a second retrieval in order to grab all of the individual credential types by organization. This isn't an issue, and the SQL is fast, but the report is another story.

For those keeping score at home, the person result set is roughly 10,000 rows in, say, 500 groups. The organization-level summary result set is probably 1500-2000 rows in 500 groups (that's 3-4 distinct credential types per organization, basically)

The main report is laid out in a tablix, and in the group footer I've had to place a subreport that handles the organization-level summary for the credentials. On the subreport, I've added a row filter that filters on organization using a report parameter. The subreport item in the group footer takes the grouped organization and passes it to the subreport. This is functional, but its performance is not acceptable. Rendering a test report on a subset of the data (only 200 outer rows) took nearly 30 minutes. Attempting to run on the entire result set threw an OutOfMemoryException after about an hour, and the application was using ~900MB of memory.

Given that the main report without the subreport runs quickly, I'm assuming this has to do either with subreports, filtering, or both.

So, here's my question:

Is there a way to improve the performance of row filters within a subreport?


Given the lack of response to this question, I am going to assume that there is nothing that can be done to better the performance of filtering in client-side reports.

0

精彩评论

暂无评论...
验证码 换一张
取 消