Tableau Dashboard Optimization

How to speed up Tableau Dashboards for optimal end-user experience

Srutimala Deka
5 min readJan 7, 2023

Tableau is a visualization tool. It can easily be used for preliminary data exploration which is usually how most of us end up with our final Dashboards that are pushed into production.

This means that often times there are kinks left in our Dashboards that never get creased out and impact performance.

Dashboards development can be broken down into multiple steps in Tableau:

  1. Connecting to the Data
  2. Writing calculations
  3. Worksheets
  4. Dashboard Designing

At each of these steps we can choose to optimize our final Dashboard by following some best practices or swapping to the better options.

Note: It is best to apply these optimizations once the initial data exploration is complete and we have a good idea about our calculations.

Connecting to the Data

Connecting to the Data Source is the first step in Dashboard development. While the data source itself can influence the speed of the queries, there are multiple ways to significantly reduce the size of our dataset.

I. Extract Filters

When Data is extracted (is not a live connection), we can apply extract filters to limit rows, aggregate to a date level and even hide unused fields. Click on “EDIT” option next to Extract on the top right corner of Data Source Pane.

Keeping data for only the US and aggregating dates to month level

Mind that to unhide the fields, one must do it manually for each field in the data source pane.

Unhide few unused fields if needed

II. Data Source filters

Data source filters are applicable even on live data. Click on “ADD” option under Filters on the top right corner of Data Source Pane.

Only keeping data for 2022

Writing Calculations

Calculations are the backbone of all Dashboards. There are plenty of guidelines to follow for building a faster Dashboard but it is also important to note that Tableau Prep is available specifically to do complex data preparations.

I. Avoid using sets in calculations

Simple sets that can be replaced by a calculation returning true-false should be replaced as so.

For a more complicated set, mapping set elements to a keyword (say Y) and looking for that keyword in the new calculation is recommended.

‘IN’ is the keyword used to tag elements of interest instead of Y

II. Using CASE instead of nested If-else

Not only does CASE provide a cleaner code, it is also faster in tableau according to their white paper “Designing Effective Production Dashboards” written by Ben Bausili.

In fact, cases are faster than sets for the same end goal.

III. Materialize calculations

Materializing in Tableau means to pre-compute calculations at the time of extraction rather than on demand while using the dashboard.

Example scenario: To calculate customers’ acquisition date. This is will static for each customer and can become slow for a large dataset as it requires row-level calculation.

Note: Materialization is only possible for physical tables and not logical. That means data model having relationships will not have this option (as of tableau 2022.4). This is because relationships inherently allow on the fly calculations depending on the tables used in the view.

Go to Data -> Extract -> Compute Calculations Now

In the presence of logical table, option is greyed out

IV. Avoid Nested Calculations

As coding practices go, we usually breakdown a complex calculation into multiple smaller calculations for better maintenance. In Tableau, if we have to use a calculation within another, it is best practice to reference it only once within a given calculation.

So what to do when our calculation becomes part of an if-else statement?

This is where a CASE statement comes in handy. For continuous values, grouping/binning can help achieve similar solutions.

For more on best practices for calculations see the Tableau documentation here.

Worksheets

I. Using text tables intelligently

Tableau is for specifically for creating visuals. But cases where table of millions of rows is part of the requirement, specially to be exported out of Tableau, can lead to poor performance even when it is a scrollable table.

One way to tackle this is to create a dedicated dashboard just for this table which gets filtered out by specific user action as and when demanded. This speeds up the initial load time of Dashboard and also avoids clutter on the main Dashboard.

II. Reducing mark count

A worksheet view can contain many data marks which will directly affect the time taken to load that visual.

Using a chart that best tells the story without adding too much detail is the key.

Example scenario: To use color or density marks to signify high data count without adding another mark-type to the view.

Dashboard Designing

A Dashboard brings together everything we have discussed so far. In addition to following the above best practices and more, for Dashboards alone, some guidelines are crucial.

I. Not more than 8 charts

A single Dashboard will perform at its best when there are 5–8 visuals to render at a single go. At this stage it becomes important to design the overall flow of the workbook and reevaluate the purpose of the Dashboard that requires more visuals to tell the story.

A main dashboard and a detail Dashboard separately in a single workbook works great. However, it is worth noting that Tableau loads the entire workbook file into memory to render a single Dashboard. So workbook size does matter!

II. Need-only Containers

Dashboards are best designed using multiple, nested containers.

While Dashboard building, if some containers are present without a purpose, even if empty, it may slow down rendering.

This article comes to an end with this direct quote from the white paper provided in Tableau’s official docs:

“Data and calculation complexity impact query speed. Calculations and worksheet design affect the calculation and rendering time. Dashboard and worksheet design impact layout computation time”

Connect with me on LinkedIn

--

--