I wanted to throw some light on the dashboard mechanism and ways (at a high level) to improve the performance of a dashboard.
Dashboard Execution:
When a dashboard execution request if made, below are the step it takes to provide the user with the output.
I-server activities
— I-server processes the request.
— All the Datasets are processed (performed by SQL engine and Query engine).
— A virtual dataset is created – A virtual dataset is a dataset created based on the datasets used in the dashboard.
— Dashboard structures are created.
— For all outputs, except for pdf, XML is generated to transform the data.
Web server
— Generates HTML and flash objects (SWF)
Client (desktop, web browser, MicroStrategy Office, etc.)
— Renders the output in various formats.
For a more detailed discuss, lets consider we are executing a flash dashboard in web (this is what I love in MSTR).
Dashboard’s performance will be based on the amount of XML generated. The more the XML, performance will be bad. XML generation is based on the amount of data retrieved and the structures included in the dashboard. Selectors, might also be responsible for XML generation. For example, if you have a selector on country with three countries having the selector target a grid. XML generated in this case, will include place holders for the elements which are not displayed. In other words, if the data is displayed for country1, XML will be generated for country2 and country3. XML generation also depends on the client machine (the computer where the dashboard is executed), as the web browser would need to render the dashboard on the client machine using the client local resources.
At a high level, the following can be considered to improve performance–
— Reducing the number of datasets.
— Reducing the amount of data in the datasets.
— Making structures better or lesser (panel stack, panels, selectors, etc..)
All the above will reduce the amount of XML and could improve the performance. This is just at a high level and there are many more ways to handle the performance issues.
Add, if you can think of some thing else.