As we continue to build more functionality and explore innovative ways to deliver actionable insights through data visualizations, equal focus must also be placed in optimizing for load and efficiency. This covers a range of different steps we can take, from data preparation, design and performance tuning.

⌛ So what’s an acceptable load time?

A Tableau dashboard is consumed the same way we consume digital experiences on the web and the ideal load time for a webpage is between 0-5 seconds. In addition, response time for dashboard interactivity (filters, navigation, download, etc) should take a similar approach.

🔎 How to identify chokepoints

1. Open a fresh instance of Tableau and select Start Performance Recording in the Help > Settings and Performance menu.

2. Open the dashboard you want to assess and let it load completely.

3. Wait 30 secs to 1 minute, and make a change such as:

4. Repeat Step 3 until you have everything you need to test

5. Go back to the Help > Settings and Performance > Stop Performance Recording and wait until Tableau opens a new workbook with the performance details

🔮 How to read the output

The dashboard comes in three views:

Understanding the event types
  1. Computing layouts
    • If layouts are taking too long, consider simplifying your workbook.
  2. Connecting to data source
    • Slow connections could be due to network issues or issues with the database server.
  3. Compiling query
    • This event captures the amount of time spent by Tableau in generating the queries. Long compile query times indicate that the queries generated are complex. The complexity may be due to too many filters, complex calculations, or generally due to a complex workbook. Examples of complex calculations include, lengthy calculations, LOD calculations, or nested calculations. Try simplifying the workbook, using action filters or moving calculations to the underlying database.
  4. Executing query
    • For live connections, if queries are taking too long, it could be because the underlying data structure isn’t optimized for Tableau. Consult your database server’s documentation. As an alternative, consider using an extract to speed performance.
    • For extracts, if queries are taking too long, review your use of filters. If you have a lot of filters, would a context filter make more sense? If you have a dashboard that uses filters, consider using action filters, which can help with performance.
  5. Generating extract
    • To speed up extract generation, consider only importing some data from the original data source. For example, you can filter on specific data fields, or create a sample based on a specified number of rows or percentage of the data.
  6. Geocoding
    • To speed up geocoding performance, try using less data or filtering out data.
  7. Blending data
    • To speed up data blending, try using less data or filtering out data.
  8. Server rendering
    • You can speed up server rendering by running additional VizQL Server processes on additional machines.

⏩ How can we optimize for that?

Check out Tableau’s whitepaper on Designing Efficient Workbooks as well.

📒 Optimizing Data Sources

👨‍🔬Optimizing Calculations

⚠️ Use these alternatives for faster processing

🎨 Optimizing Design

This is not an exhaustive list of how you can optimize your dashboards, nor it is a MUST-DO but it should give you a good foundational understanding of Tableau's under the hood. The Performance Recorder is a very much under-utilized feature, so hopefully this gives you some idea of how to implement that. You can always reach out for me on LinkedIn or X/Twitter if you need help, or if you have tips to share with everyone. Til then, keep vizzing 😎