10 Strategies to Improve your Flash Dashboard’s Performance
Flash is all the rage in the microstrategy community these days. It’s a far better way to visualize multiple datasets compared to the old static pdf/html report services documents. MicroStrategy flash dashboards have allowed users to pivot, filter,and drill on many metrics simultaneously in the same view. Coupled with this enhanced level of interactivity are really clean and pretty visualizations. All of this is quite compelling and validated by the general adoption of flash/flex in BI. Unfortunately, there is a trend out there that’s pushing the dashboard beyond its original definition and intended capabilities. Instead of simply viewing high level aggregated results, users are demanding detailed tabular data in the same space.
Currently microstrategy does not stream data to the flash dashboard, instead the whole xml data source is downloaded to the client. Additionally, this xml source can get large as many of the interactive views are precalculated server side. Because of these reasons, kitchen sink dashboards in flash view will be slower than the public’s general experience with flash content. I have seen dashboards that are so big that it takes 10mins or more to render (post execution). Although interactive mode is a better performing alternative, clients generally prefer flash because of its slicker interface.
Our current client had at one point built dashboards that were 50mb+ when exported from narrowcast as mht files. We ended up using narrowcast to write to local file servers since web-based rendering was critically slow especially for our Europe and Asia users. Here are 10 strategies you can use to improve your flash dashboard performance:
- Break the dashboard into multiple dashboards and link them together in a logical way. If the dashboards are prompted you can of course pass the prompt answers in the url.
- Reduced the row count of detailed grids. Try using rank on one of the metrics and display only the top 10 rows via view filter qualification. Then provide a link to the detailed report which is a regular micostrategy grid report. This way the report results are already cached, users get a preview of the grid data, and if they want more info they can easily access it.
- During development monitor dashboard xml size. You do this by installing a FireFox plugin called firebug. In the Console > Net window you will see all the components downloaded when rendering a page. Look for something called GET taskProc?taskID=docXMLResult… There are two and the second one usually corresponds to the actual data. You should see the size next to it, if not you can download the file directly and save it to your desktop.
- Try to keep the xml size (file mentioned above) under 6-7mb. During our testing this seemed to be the optimal size beyond which dashboard rendering and selector performance degrades. We have implemented dashboards up to 12mb, but user expectation was set appropriately.
- Narrowcast dashboards over 7mb as mht files.
- Avoid large metric selectors when possible. Each metric in this type of selector corresponds to a chunk of xml that defines a precalculated grid view.
- Use attribute selector over group by for paging.
- Don’t go crazy with interactivity. The more selectors and widgets you add the worse your dashboard performance will be.
- When narrowcasting very large dashboards using personalized page execution with segmentation objects to reduce the dashboard instance size. Services with dashboard instances over 200mb move very slowly in the slicing phase. Sizes above 200mb can cause narrowcast to crash.
- All else failing, push hard for Interactive Mode. If designed properly it can look quite nice.
All of the above suggestions are valid as of 8.1.2. I will update this post if these assumptions are to be changed in future releases.
Is there any way so that i can host these Dashboard MHT’s prepared through Narrowcaster to host on a public website ( without using Microstrategy Web )?
Anish, it is possible. You can simply link to the mht file (only works in IE) or you can use MhtRipper to split the files and link to the html output.
Thanks for ur valuable comments AJO.
I have tried the following prior to ur reply:
Open the mht using Winzip utility.Extract in a folder.
There are xmls, swf and one text file named 0001.txt which contains the necesary html codes.
Open this txt file , remove all the local references (file://).
Save the file as html.
Run the file.
But this did not work, the html did not return anything.
Can u plz tell what is the difference between using a Winzip and the MhtRipper.
Also could u plz explain how do you link these mht’s in IE.
The problem with winzip is that it wont automatically replace the file:// references and it wont flip “never” parameter to “always.” When you replaced file://, what did you put in there? It should be converted to relative path. Use the mhtripper and simply compare the html files.
Hey Ajo, was searching something on NCS and landed on following page:
http://microstrategy-babu.blogspot.com/2009/05/10-strategies-to-improve-your-flash.html
and realized that I’d read that before on your blog.
Now this guy called Babu has started scraping content from you too.