Optimus Think

Performance Tuning Checklist for Tableau Dashboards


The following list of changes, tweaks, or considerations are all designed to improve performance of a Tableau dashboard. Not all suggestions will work in all situations, so even with this list there is a need for experience and understanding of how Tableau works in order to properly evaluate this list. There are three broad categories of things to do, some requiring more technical expertise and access to source systems than others.

  • Data Structure/Content Tuning
  • Visualizations Tuning 
  • Calculation Tuning   
  • Other

We have color-coded, based on category, actions to be taken. The list is generally presented from “most impactful” to “least impactful”. Again, not all “most impactful” suggestions will work on all structures of data, and in some cases entries at the bottom of the list may be much more impactful in some scenarios. For example, if a dashboard is running on a heavily used Tableau Server the last entry in the list, “Use fixed sized dashboards” may actually produce significantly better results. Caveats aside… here is the list.

Tableau Dashboard Performance Tuning Checklist

  1. Consider offloading data preparation/cleansing from Desktop and into Prep and simplify any calculated fields with the sole purpose of reshaping data for visualizing (e.g. string manipulation, data type conversion, etc.)
  2. Extract source data and consider using a multi-table (i.e., normalized) extract, where appropriate, but especially for multi-fact tables (e.g. survey data, snowflake schemas, etc.)
  3. Reduce number of marks in visuals (i.e. aggregate source data, aggregate views, etc.)
  4. Remove/hide unused columns… if extracting data, hide the unused columns prior to extracting
  5. Pivot columns to rows where appropriate (e.g. date columns like months or years, survey responses, etc.)
  6. Reduce number of rows as early as possible (e.g. data source filters)
  7. Reduce size of large text table views, or hide the large text tables until filters have been applied
  8. Connect to data sources using native drivers rather than ODBC
  9. Avoid using custom SQL (this bypasses Tableau’s ability to generate efficient, optimal queries)
  10. Reduce number of views per dashboard
  11. Reduce number of filters on views
  12. Promote “high impact” “frequently used” filters to context filters
  13. Replace LOD filters with sets that are formula-based
  14. Replace LOD expressions with table calculations where possible
  15. Determine where performance issues exist (i.e., Desktop Only, Server Only, or both) and address accordingly, consider using a performance recording for low-level detail of performance factors
  16. Use only one or two context filters, and only if they reduce record count by 10% or more
  17. Change enumerated filters (e.g., dropdown, radio, slider) to unenumerated filters (e.g., custom value list, wildcard match)
  18. Avoid excessive use of “only relevant values” filters
  19. Use the “apply” button for shown filters
  20. Simplify the granularity of the data source so advanced calculations (e.g. table calcs, LOD expressions, etc.) aren’t necessary
  21. Reduce number of text fields
  22. Avoid sparsely populated data sources (e.g. lots of NULL/blank values), unless the data is extracted
  23. Use joined data sources instead of blended data sources when data sources have high number of records (i.e. not as useful if one data source is “reference data” with very few rows and the other is “fact data” with lots of rows), or when the field has large numbers of unique values (i.e. high cardinality)
  24. When joining tables, use the minimum tables and joins necessary to generate the data you need
  25. When possible, avoid linking blended data sources on long text fields, or fields with high cardinality (i.e. lots of unique values)
  26. Avoid string manipulation where possible (e.g. FIND, LEFT, RIGHT, MID, etc.)
  27. Allow logins to database ability to create and delete temp tables
  28. Use optimal date functions (e.g. DATETRUNC, DATEADD, DATEDIFF) rather than complex conditional logic
  29. Use the most efficient type of calculation: table calculation, level of detail expression, aggregate/view-level expression, row-level expression
  30. Use fastest possible data type (e.g. integers and boolean are faster than strings and dates)
  31. Use optimal aggregation (i.e. MIN and MAX are more efficient than ATTR or AVERAGE are, COUNTD is one of the slowest of all aggregations)
  32. Optimize use of external calculations (i.e. Python, R) if they are absolutely required
  33. Use fixed sizes for dashboards

If you need assistance to improve the performance of your Tableau dashboards, we would be happy to help! CONTACT US

Optimus Think