User-1528094326 posted
SSRS 2008 and beyond does include a type of On Demand Processing, but what that means is essentially it will not load multiple datasets if it doesn't need them. It only loads what it needs first, however from what you described it is loading a single dataset,
and passing values as a parameter to the Sub report which will be processed because it comes from the initial dataset load.
Sub reports in themselves are very slow. Before you go slicing up code and trying to do advanced things, see if you can simply clean up the report some first. In fact, see if using nested data regions will work for you rather than using Sub reports, this
will cut your loading time DRAMATICALLY. You can find examples of how to do it here:
http://gotreportviewer.com/masterdetail/index.html
The only other option that comes to mind if this won't work for you, is to try and mimic a manual on demand solution by using the LocalReports DrillThrough event, but doing so acts as navigation for the ReportViewer, and you would not have a "+" sign to
expand or hide a report section.