Widget-Specific Best Practice
Along with widget unit weight there are other widget-specific best practices that you should follow when planning and building your stories in SAP Analytics Cloud.
Tables and Charts
There are some design choices that improve the performance of stories that use tables and charts, reducing rendering time for the story.
- Limit the number of cells in a table.
- Avoid an initial state of tables with complete drilldown.
- Avoid charts with more than 500 data points.
- Avoid linking too many charts (linked analysis): This will trigger an update to the values every time the selection or filter changes.
- Apply the Top N feature: With high cardinality dimensions, consider manually setting the Top N values rather than using Auto Top N.
When Auto Top N is used, all the data is transferred from the system before the Top N data is rendered. When a Top N is used, the data is sorted, and only the Top N values are selected in the system and sent.
Geo Maps
Geo maps are a great way to visualize data geographically, however, there are some design choices that you can make to improve performance:
- Reduce the number of data points displayed on maps.
- Enable location clustering for 1,000+ points, instead of the default of 5,000+ points.
- Construct the layout of maps to limit zooming and panning if location clustering is enabled, as each movement submits a backend query.
Images
While it is possible to upload larger images, it's recommended to use smaller file sizes. This helps with better performance, especially for users with low network bandwidth. Smaller images mean a reduction in RAM usage on the local device. In fact, you may encounter problems when trying to upload images that are larger than 10MB.
Consider trying the following when using images in a story:
- Upload background images that are 1Mb or smaller. To get a good quality background image, you could use a compressed web image, or you might want to use an SVG image instead of PNG, JPG, or BMP images.
- Leverage header images, whenever possible.
Input Controls and Filters
Expanded page filters or input controls are convenient because you can quickly select members or search for members in the control. However, it is recommended to design them so that they are collapsed in the initial view as the query will only be sent to the backend system when the user interacts with the input control instead of on page load.
Turning off the Cascading Effect option for the input control increases performance. When you use an input control, Cascading Effect is selected by default.
In the example below, when Cascading Effect is enabled for Country, then when a value is selected, the City values update along with the chart requiring an additional request to refresh the data. If Cascading Effect was disabled, then only the chart would update and the City values would not change.
Push On-the-fly Calculations to the Backend
SAP Analytics Cloud provides functionality to create on-the-fly calculations called calculated measures on story level. However, for best performance, it's recommended to create the calculations on data source level where possible. This allows the query to be processed in a more efficient way.
Optimize Performance When Building Stories
Performance issues can occur when you are building the story, it isn't limited to users viewing and interacting with a completed story. When you are creating stories, the speed with which you can add and configure widgets and other elements depends on how often calls are made to the underlying data sources. Let's look at how you can optimize your story building performance using the Optimizing Story Building Performance setting in the model.
By default, every modification to your table or chart from the Builder panel sends a query to the server, resulting in an immediate update to the table or chart. For example, when adding or removing a dimension or measure, you need to wait for the chart or table to be updated before making another change. Depending on the size of the model, the response time can be slow; this can put a heavy load on the server. For this reason, one of the best practices for story design is to reduce the number of queries.
Activate Optimizing Story Building Performance
If you activate the Optimizing Story Building Performance function in the model preferences, then data updates during story design are prevented.
To turn off the automatic data update during story design:
- Open the model Preferences.
- Select Data and Performance.
- Toggle on the switch under Optimize Story Building Performance.
Manually Refresh Data Source
When a change has been made in the Builder panel, the refresh icon will appear. Simply click the icon to apply your changes and manually trigger a data refresh in the story.