Posted by Eric

March 13, 2019

14:04

Leave Reply

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.

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.

  1. Consider offloading data preparation/cleansing from Desktop and into Prep
  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
  5. Pivot columns to rows where appropriate (e.g., date columns like months or years, survey responses)
  6. Reduce number of rows
  7. Reduce size of large text table views
  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. 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
  15. Use only one or two context filters, and only if they reduce record count by 10% or more
  16. Change enumerated filters (e.g., dropdown, radio, slider) to unenumerated filters (e.g., custom value list, wildcard match)
  17. Avoid excessive use of “only relevant values”; filters
  18. Reduce number of text fields
  19. Avoid sparsely populated data sources (e.g., lots of NULL/blank values), unless the data is extracted
  20. 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)
  21. When joining tables, use the minimum tables and joins necessary to generate the data you need
  22. When possible, avoid linking blended data sources on long text fields, or fields with high cardinality (i.e., lots of unique values)
  23. Avoid string manipulation where possible (e.g., FIND, LEFT, RIGHT, MID, etc.)
  24. Allow logins to database ability to create and delete temp tables
  25. Use optimal date functions (e.g., DATETRUNC, DATEADD, DATEDIFF) rather than complex conditional logic
  26. Use the most efficient type of calculation: table calculation, level of detail expression, aggregate expression, row-level expression
  27. Use fastest possible data type (e.g., integers and boolean are faster than strings and dates)
  28. 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)
  29. Optimize use of external calculations (i.e., Python, R) if they are absolutely required
  30. 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

  • Hetal Soneji says:

    Useful information Eric

  • Roland Schlichting says:

    Nice Post Eric.
    Helpful

    Leave a Reply

    Your email address will not be published. Required fields are marked *

  • Explore Posts By Category

    Archives

    Archives

    Want to know more?

    Contact us