Optimus Think

Tableau Performance-Tuning Checklist


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

  • Data Structure/Content Tuning
  • Data Visualization 
  • 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 data structures, 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 a comprehensive list of how to optimize your Tableau dashboard.

Tableau Dashboard Performance Optimization Checklist

  1. Consider offloading data preparation/cleansing from Tableau 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 the 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 before data extracts
  5. Pivot columns to rows where appropriate (e.g. date columns like months or years, survey responses, etc.)
  6. Reduce the number of rows as early as possible (e.g. data source filters)
  7. Reduce the 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 the number of views per dashboard
  11. Manage filters efficiently by reducing the number of excessive filters on views to improve query performance
  12. Promote “high impact” and “frequently used” filters to context filters
  13. Replace LOD filters with data sets that are formula-based
  14. Replace LOD expressions with table calculations where possible
  15. Determine where performance issues exist (i.e., Desktop Only, Tableau Server Only, or both) and address them accordingly using a performance recorder. The performance recording is ideal for low-level detail of performance factors.
  16. Use only one or two context filters, and only if they reduce the 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 calculations, LOD expressions, etc.) aren’t necessary
  21. Reduce the number of text fields and hide unused 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, and row-level expression
  30. Use the 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, and COUNTD is one of the slowest of all aggregations)
  32. Optimize the use of external calculations (i.e. Python, R) if they are absolutely required
  33. Use fixed sizes for dashboards


Optimus SBR’s Data Practice

Optimus SBR provides data advisory services customized to support the needs of public and private sector organizations. We offer an end-to-end solution, from data strategy and governance to data infrastructure, engineering, analytics, data science, visualization, insights, and training.

Contact us if you need assistance with performance improvements of your Tableau dashboards, or need help with data analytics and building your data strategy, we would be happy to help!

Optimus Think