Speed & Performance Optimization
Roughly 80% of the performance optimization can be attributed to data design and filters.
More specifically, four internal factors primarily impact dashboard performance:
- 40% Data Design
- 25% Filtering
- 20% Calculations
- 15% Layout & Visuals
SUMMARY of best practices for Speed & Performance Optimization:
Workbook performance drives speed to insight, analytical flow, and iterative development. Optimizing dashboard performance is one of the most important (but not exciting!) responsibilities of a data analyst.
Before we start developing or optimizing, we should consider the following key questions:
Remember: Performance is relative; in some cases, a 30 second load time is amazing while in others, 2-3 seconds are unacceptable.
Workbook performance can be impacted by both, internal and external factors:
Internal factors (data source & workbook) are directly within a developer's control and should be the first point of optimization.
External factors (database, server, network) are environmental and out of a developer's control, but can be optimized with outside assistance.
Tableau includes a performance recording tool to track object load times (both locally and on Tableau Server) in order to identify and target potential areas of improvement.
Various event types are tracked during recording, which can help us understand the largest opportunities for speed and performance improvements.
As part of data design, Tableau Desktop provides a number of tools for combining and modeling data source connections, including relationships, unions, joins, and blending.
Extract Connection can be optimized by configuring extract settings or applying query optimization options like parallel queries or query fusion:
Filter optimization techniques include choosing the right filter types, applying filter options, and using common filter alternatives like parameter and set actions.
There are many ways to optimize filter performance in Tableau, including general and type-specific best practices:
Customizing filter options can improve both real and perceived performance :-)
Filter actions are an app-like, dynamic alternative to using discrete filter drop-downs. Unfortunately, in my experience, customers prefer drop-downs which give a more report feeling. In the future, this attitude will hopefully change ...
PRO TIP: Using the "Exclude all values" option for clearing a selection can be used to create a show/hide functionality with sheets.
Filter alternatives like parameter actions and set actions can provide similar functionality while improving performance.
Calculation optimization techniques including tips for improving the performance of aggregations, table calculations, conditionals functions can be used. As we know, calculations can be applied at various levels in Tableau, and each calculation type varies in terms of workbook functionality and performance:
Aggregation can be defined within calculations (recommended!) or applied outside your fields. Of course, when the aggregation is not defined within the calculation, we are forced to define a single aggregation type.
Table calculations are performed at the view-level (in memory / after the query), and can slow workbook performance when applied to large or extremely detailed views.
Conditional calculations are performed in the order we define them and should be organized with the most outcomes first to maximize efficiency.
The number of unique marks and sheets on a dashboard directly impacts Tableau's ability to process and render the data efficiently.
Mapping is one of Tableau's major strengths, but geospatial features need to be applied carefully to minimize the impact on performance.
Tooltips can provide additional detail or context within a dashboard but should include a limited number of measures or a single basic visual (with filter actions applied).
Dashboard properties like device-specific views and fixed sizing can impact Tableau's ability to cache and render dashboards efficiently.
Embedded and published data sources vary in terms of performance and usability; embedded sources generally run faster, but published sources can be shared among workbooks.
Tableau Server uses either client or server-side rendering based on a dashboard's complexity.
To test the performance of server-side rendering, type ?render=false after the dashboard URL. To test specific rendering thresholds, type something like ?render=80 (where "80" is an example threshold).