10 Tricks To Optimize Dashboard Performance In TABLEAU

April 22, 2015

Here’s some tricks of the trade to quickly improve the performance of your Tableau dashboards.

1# Eliminate unnecessary data

When working with Tableau, we usually don’t worry about the data until we see issues with performance. As a best practice, it is always better to eliminate the unnecessary data. If we are able to remove this unnecessary data by simply making changes at the data level, then our performance problems will be resolved at the initial stages itself.

2# Partial extracts of the data

If it isn’t possible to tackle data elimination at the data level & when only part of the whole data is required for analytics, then one of the best practice is to have a partial extract of the data. A Tableau data extract (TDE) is a subset of data that we can use to improve the performance of our workbook.

For example: There could be an instance where analysis specific to a particular region needs to be shown. In this case, reading the entire dataset will only add the unnecessary data which in turn can cause performance issues.

In this case, we only need the subset of records & the “Extract Data Filtering” can be the best way to improve performance. This will filter the results before they’re pulled into Tableau and the resulting data set will contain only the relevant information.

Refer the following link to know more.

3# Using Aggregated data & Hiding unused fields

Aggregating the data is another way to address performance issues. If & when it is possible, using the aggregated data instead of the entire transactional data will help improve performance.

This can be done at 2 levels.

  • Creating a summarized view at data level
  • Aggregating the data when creating an Extract

If aggregation isn’t possible at the data level, then we can do so at Tableau level by creating an “Aggregated Extract”.

Further, the fields which remain unused after we are done with our analysis, can also be one of the reasons affecting the workbook’s performance. In this case, we can hide all the fields that remain unused after we are done with our analysis. Refer the following link to know more.

4# Avoid using Quick Filters

Filtering the data on the fly is necessary, however, using Quick filters can hamper the performance– the more Quick filters we have on the dashboard the longer it will take to render, especially if they’re set to only show Only Relevant Values. In this case, we can filter using Actions which can help improve the performance.

Refer the following link to know more:

5# Use Boolean calculations whenever possible

When required to do a Boolean calculation, a standard IF THEN statement that returns only two values would look like this:

IF [Date] = TODAY ()

THEN “Today”

ELSE “Not Today”


However, a faster calculation would be:
[Date]=TODAY ()

We can then use Aliases to rename the TRUE and FALSE results to “Today” and “Not Today”.

6# Alternative to Grouping

Alternatives to creating ad hoc Groups in Tableau is to use calculated fields.

([Item-Name], 5)

WHEN “Pen” THEN “Pen”

WHEN “Pencil” THEN “Pencil”

WHEN “Scale” THEN “Scale”

ELSE [Item – Name]


A case statement like the one above will run faster than creating a group that would achieve the same Grouping. Also, if a new product that matches the above criteria, it will automatically group it.

7# Use ELSEIF rather than ELSE IF in your logical statements.

The nested IF computes a second IF statement, rather than being computed as part of the first one.

IF [Product Category] = “Furniture” AND[

Product Sub Category] = “bookcases”

THEN “Furniture-bookcases”

ELSE IF [Product Category] = “Furniture” AND

[Product Sub Category] <>”bookcases”

THEN “Furniture-All Others”


Would run much faster as:

IF [Product Category] = “Furniture” AND

[Product Sub Category] = “bookcases”

THEN “Furniture-bookcases”

ELSEIF [Product Category] = “Furniture” AND

[Product Sub Category] <>”bookcases”

THEN “Furniture-All Others”


But this is the fastest of the three:

IF [Product Category] “Furniture”


IF [Product Sub Category] = “Bookcases”

THEN “Furniture-bookcases”

ELSE “Furniture-All Others”


8# Using the right String Calculations

Imagine wanting to show all records where the product name contains some lookup string. We could use a parameter to get the lookup string from the user and then create the following calculation:





This calculation is slow as compared to the one mentioned below CONTAINS ([PRODUCT NAME], [PRODUCT LOOKUP])

A better way to do this would be to use the specific CONTAINS function as this will be converted into optimal SQL when passed to the database.

you’re data’s huge.

Here are some alternatives to using count distinct function.

Please refer the following link to know more:

9# Tableau only queries a row of data once in a calculation

Calculations such as the one below contains redundant calculations:

IF [Profit] < 10 Then “Bad”

ELSEIF [Profit]>= 10 and [Profit]<30

Then “OK”

ELSEIF [Profit] >= 30

THEN “Great”


We can improvise this calculation as shown to below to improve performance:

F [Profit] < 10 THEN “Bad” ELSEIF [Profit] >= 30

THEN “Great”



When using extracts and custom aggregations, divide the calculation into multiple parts. Place the row level calculations on one calculated field, and the aggregated calculation in a second calculated field. Then extracts can optimize (pre compute) the row level calculations.

10# Alternative tricks to COUNT DISTINCT

Taking distinct counts in Tableau is incredibly easy. For instance:

COUNTD (Product Category)

This calculation would give us the number of items in each category.

It is also, however, one of the more intensive calculations to perform and can be very slow, especially if you’re data’s huge.

Here are some alternatives to using count distinct function.

Please refer the following link to know more:

© 2021 Syvylyze Analytics. All Rights Reserved | Privacy Policy

Powered by INCITE

Log in with your credentials

Forgot your details?