In this article, we are going to map some of Sisense Dashboard Design Best practices related to performance. When you start developing a dashboard or when you want to simply improve its performance, take a look at the guidelines below and adjust your dashboard accordingly.
Avoid Wide or Long pivot tables
- Reduce the number of columns
- Filter the number of rows (Top filter on value)
- Consider Table widget or Aggregated Table plugin
Avoid many members in charts
- Wide X-axis in Line / Column charts
- Many members in “break by”
- Use Drill hierarchies
Always consider the number of widgets
- Recommended 7-10 widgets
- Consider the number of elements (filters/texts)
- Use drill dashboards (Accordion / Jump to)
Avoid dashboard date functions
- Date functions in the dashboard are re-calculated in the front end (Qdiff, MTD)
- Try to create the logic in the ElastiCube
Avoid too many include/exclude values
- Choose the lowest selection between the two
- Consider using a higher hierarchy
Addons and customization
- Make sure all the scripts are not colliding (console)
- Disable un-used plugins
Performance issue and Possible Cause
Performance Issue |
Symptoms |
Possible Cause |
Dashboard crashes
|
Server crashes |
M2M |
Widgets don’t load |
Poor Machine (not enough Memory) M2M |
|
RAM is inflating |
M2M |
|
Browser is getting stuck |
Browser issues Network |
|
High IIS Memory consumption |
Wide pivot tables, text widgets, plugins |
|
Slow Dashboard
|
Widgets timeout but no extra RAM consumption |
Many JOINs Consolidation\lookups\numeric representation |
Long Query Time (cold cache) |
Wide pivots Data security |
|
Long query time (warm cache) |
Dashboard Time\Date functions |
|
Build Crashes |
Builds are failing on Custom queries (connection lost) |
Internal M2M Big data – Poor Specs Left\right joins causing M2Ms (nulls) Wide string fields casting Indexing Keys\Key tables |
Long Builds |
Long Importing stage |
Remove unnecessary fields Indexing |
Custom Tables |
“Expensive” Operations Lookups vs. Left Joins |