I have built a dashboard using Xcelsius 2008 and it contains 8 tabs. Each tab contains about 6 charts. The dashboard takes about 5-15 seconds to load the first ‘Home’ tab. And each time I switch tabs, it takes about 5-10 seconds to render them.
There are about 12 live office connections feeding into this dashboard. All the aggregation, calculations happen at the database and report level and the underlying reports themselves return data with 2 seconds.
I would like to ask the experts here if this performance is too slow or if its acceptable per industry standards. Also, if someone can provide an average load time for the dashboards that they have deployed, it would be of great help.
I’m not there are specifically industry standards, just more expectations.
I would say as you are talking seconds then you are in the right ballpark, but you can probably make improvements with design changes, database changes or perhaps pre-calculating some of the results into smaller data sets on a scheduled basis.
I’d say the expectation of an Xcelsius/Dashboard report is that response should be snappier than that of a Webi report for example. You may want to consider cutting down the data in the Xcelsius report and having some available as drill through in Webi or simply not queried until the user requests it.
One other point - if you can’t improve the speed easily then use the data loading functionality of the connections to make sure what is happening is clear to the end user. (if you aren’t doing it already)
Thanks for your response. However, I am not sure what you mean by data loading functionality of the connections. I would appreciate if you can elaborate on this.
I am using Live office connections to load data into the dashboard and each connection takes about 2 seconds to load data.
When you add a connection under the Usage tab there is a section called “Load Status”. This can be used to give an indication to the end user that the data is being refreshed or loaded. For example if you have data which drives a graph then set the sub-title of the graph to be a reference to a cell. Then set:-
Loading Message to “Loading …” Idle Message to a cell reference of what you would normally want the graph sub-title to be. Insert In to be the same cell as the Graph definition sub-title.
So then when the data is refreshed the sub-title of the graph will change to “Loading …” as it occurs and then back to the real sub-title when it completes.
We have also experienced same level of performance with our Xcelsius based dashboards. The dashboard pages are taking somewhere between 12 to 20secs.
Few points that we came across and I could share with you :-
We can divide the total time of downloading and rendering of dashboard to 4 phases (please also refer attached pictures with our sample dashboard) :
i. BOE server scripts running time: 6 -7 seconds.
ii. Download and render SWF : 9 seconds
iii. Log on to Web Service : 2.5 seconds
iv. 24 LiveOffice Connections HTTP Requests: 8 seconds
A good amount of time(almost 30 to 35%) is spent on downloading the xlf or swf file to the client machine.
Refreshing of Live Office connection also takes major time.
BI Platform does cache the dashboard copy at the client local machine with an expiry date of 7days so next time when the same dashboard is opened, it doesn’t have to download the file again.
Xcelsius takes time to render since it needs to download the entire dashboard file and then fire data connections to retrieve data instead of sending the finished output may be in HTML format. One of the SAP Architect suggested SAP Design Studio will take care of this.
To be honest looks like a badly designed dashboard. A few points to consider:-
Linking dashboards via flash variables to make them smaller then you will only initiate then when required.
24 Live office connections is too many, leads me to believe that your data model was not right to produce the dashboard efficiently. Work with highly aggregated data.
Why didnt you use BI services, instead of Live Office?
Restrict the use of Excel functions.
Yes we are using Flash variables to initiate only when required and now we don’t use Live Office connections.
We are working with highly aggregated data. There are only 8 Live Office connections. Each LO connection needs three HTTP requests to retrieve data. Hence, the count shows as 24 HTTP Connections.
Im agreeing with Mak1. The problem with performance is in the dashboard design itself.
The only legitimate part of your analysis that makes sense is the 9 second SWF Rendering time. Im guessing you are using Internet Explorer…which is not optimized for SWF and never will be. Chrome, for example will cut that time in half. ( 10 seconds with around 60-70 components is still legitimate, however. )
BI services, even if you have 40 of them, should run be running milliseconds (e.g. .02 seconds) each. They do run in a linear fashion tho.
This software isnt going to solve problems in your network infrastructure.
…Although network admins will blame anyone or anything but themselves to prove otherwise !!
A quick thought… are you using the TabSet component? If you are, try replacing this with a combination of Label Based Menu and Canvases to get the same results.
The TabSet can have a detrimental effect on performance when it contains many tabs.
Also - export your excel file from Xcelsius, open in Excel and save as .xls. Re-import the spreadsheet back into your Xcelsius model. This can sometimes remove any Excel file bloat. What is the size of your .xlf file?
In your case, find out from the business which tab components they would like to see first, then put them in line first & then the rest of the components(for this you can use REFRESH button to delay the load time).
Sometimes the business is not tech savy, so they do not understand the complexities…example if you are working for a financial firm then they need everything under 8 sec(which is highly impossible with comlex logic), some clients are ok with time( not >20 sec)
I tend to design towards a summary launch page that is exception orientated. By having a launch page that only shows the user the areas they should be concerned with, you focus their actions and reduce the level of processing you need to perform to present results.
Stephen Few’s work on information design is great reading. His work teaches you to use your real estate effectively and as a side benefit, if coupled with a decent set of aggregation tables in your warehouse will ensure your dashboards load in the minimum of times.
Your users tend to accept that the process of drilling down to find the exception will take a few seconds, buying you the time to load a on-demand webi report of the detail.
One factor can be considered here is that - Besides data refreshes, Xcelsius accounts number of components used in the dashboard as well. When you have 8 tabs, and each tabs has 5 to 10 charts, you seems to be having more chart components.
Please see if number of components can be reduced and thus going to save some time.
Suggestion to reduce the chart component is - if you have same data being shown with no changes to the x/y axis, you can one use chart section across tabs. Example - show last 12 month sales by department, and I have 8 department. Here, instead of creating 8 charts, I can have one chart, and use the same in all 8 tabs.