Whenever you create a new dataset with certain parameters in MDX, SSRS will automatically create the datasets to populate the parameter values for you. You would then think that this is easy but hang on, when you run the report, it takes so long to run. The next think you will see is that your BIDS project is not responding. You would then have to kill it and reopen the project. This is the real nightmare!
I posted previously that the number of rows returned from the datasets is very important. Using SQL Server Profiler proves this.
So if you experience a very slow performance in running your MDX reports, check the datasets and attempt to reduce the number of rows returned. For example, a date parameter does not need its available values to obtain from the query. So set its available values to None and default value to some dates or todays date. Next, restrict the number of dates return in the dataset by filtering it say, filter the dates where a certain measure is greater than zero.
Another thing is, if you have a main report with a subreport, check which parameters that will be passed through to the subreport. These parameters will be passed on as one value only. Hence the parameter in the subreport should have its available values set to None and the dataset to populate its values can be deleted.
The above will significantly improve the performance of the report. 🙂
Read Full Post »