In this post, I would like to share some best practices and tips to optimize SAC story performance.
Always use SAC recommended browser: Google Chrome for better Story performance.
Limit number of charts and elements:
- It’s easy to read and analyze the information in the stories when there are less number of individual data points.
- Add the number of individual tiles on each page of the story limited to six or less.
- Overloading the pages with huge information will make it harder for the viewers to consume and may effect the loading time.
Drill to detail using hierarchies and hyperlinks:
- Use chart drill capability for a Dimension with a large Hierarchy.
- We can jump several levels at once, When drilling down.
- If we want to refer to a related story, we can add a hyperlink to a different page, story, or external website.
- Create a detailed report in separate story and create hyperlink to charts, Table, Images and Text to jump to the detailed report.
1. Turn On Optimize Story Building Performance:
- In Model Preferences under Data and Performance, Switch on “Optimize Story Building Performance” to optimize and load on the system.
- It will stop automatic update that happens when changes are made in a chart or table.
- 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.
- To reduce the number of queries being sent, enable the following option in your model: Optimize Story Building Performance.
- When the optimize story building performance option is enabled, modified tiles are not immediately updated.
- When you have done the required changes, click the refresh button in the panel. The query is processed, and the table or chart is updated accordingly.
- Live Views contains many dimensions and measure, sometime which are not required for the analysis.
- Reducing the model metadata by hiding unnecessary dimension & measures can improve overall story loading performance.
1. Use Responsive layouts when possible:
- Design your story using Responsive pages instead of Canvas or Grid pages.
- Responsive pages creates flexible dashboards that can be presented on any device or screen size.
- Instead of creating a story with many number of pages, create different stories.
- If the end user wants the reports to be mobile enabled to use in SAP Analytics Cloud Mobile App, then Responsive pages are the only option.
2. Lazy loading of Stories:
- Lazy loading speeds up loading story. First, the content of the viewport, which is visible to the user is loaded, and then in the background, the rest of the content.
- Story view time has been improved by only loading the content in the viewport, meaning that all other widgets are loaded in the background.
- If the user does not scroll the page to the end, the content below will not load.
- A caching of story data in client browsers appeared. It allows to load stories even faster. The cache will be stored until the history is changed. Available in Google for not in incognito mode.
Charts and Tables:
1. Limit results with Top-N, but avoid Auto Top-N:
- Limit the results with Top 10 or 20, instead of fetching all the “N” rows by Auto Top – N.
2. Use Trellis or Heatmap instead of multiple Charts:
- The tiles on a heat map change colour based on the value of the measure. Heat maps are a convenient way to represent a large volume of data points in a chart that’s easy to read.
- We can now create trellis on dimensions that are already used in the chart. This feature is perfect for making visual comparisons between complex data.
3. Apply Chart Filters & Table Filters:
- Apply chart filters and table filters to reduce the volume of information in charts with more number data points and amount of information visible in the tables.
4. Optimized Table Format (Beta Table):
- Select the Beta table option to try out changes to existing table behavior. When adding new features and changing existing features in tables, there is the potential to cause problems.
- Therefore, instead of replacing known behavior, SAC providing a beta table that you can use to test the new functionality.
The new Table experience includes:
- Smooth scrolling – also when your cursor hovers over the table (no click needed)
- Improved performance of in-cell charts and thresholds
- Ability to specify exact row height or use the predefined Fiori heights (Default, Condensed)
- Ability to specify exact column width for non-responsive tables
- Deselect linked analysis members with ESC.
5. Rows and Column Limitation in a Table:
- Limit the tables to a maximum of 500 rows and 60 columns. If we need to display more, we can edit the table drill limitation.
- If we include more cells, it will take more time to load the story.
- Limit Results through Filters, Parameters, Bookmarks and Linked Analysis.
- Use Story Filters, not multiple Page/Chart/Table Filters.
- Collapse Page Input Controls.
- Disable Unneeded Cascading Filters.
- Leverage Explorer instead of Large Tables.
- Facet Loading Configuration in Explorer.
- Disable Auto-Synchronize.
Enable Progressive Chart Rendering:
- When reloading a chart, show the last successful refresh of the chart (if available) until all the data has been refreshed and displayed.
- When the rendering option is enabled, a version of the chart is cached (for an hour) and then displayed while the data is being retrieved and refreshed. If you try to interact with the cached chart, you will see the loading icon.
- To enable the rendering option, do the following:
- Go to System Administration System Configuration .
- Select (Edit).
- Set the Enable Progressive Chart Rendering toggle ON.
- (Save) the changes; select OK to refresh the page.