Improve Your Tableau Dashboard Performance


Do you want your Tableau dashboard to speed up?

There are a number of things that can cause poor Tableau dashboard performance. Ideally before the users start to ask, “Why is the dashboard so slow?”, take some proactive steps to keep your dashboards performant.

Some alterations make a big difference, others are marginal, but every millisecond saved is a millisecond better Tableau load time. Multiple small changes can add up to provide noticeable performance improvements, giving end users a better user experience.

15 ways to make Tableau dashboards faster

There are a number of things to check that could improve your Tableau dashboard performance. Some are related to the underlying data, others related to the workbook and dashboards.

formula 1 car representing speeding up tableau dashboard
Make your dashboard an F1 dashboard

This isn’t an exact science, one or a combination of things can cause the poor performance.

I suggest trying to optimise as much as possible. Finding a few milli-seconds of performance improvement in a few areas starts to make a noticable difference.

Check the Data Source(s)

1. Unless your data source is a super fast analytics optimised database, such as a columnar database, then use a Tableau Hyper file. A Hyper file is Tableau’s own super fast database, optimised for analytics. It can aggregate and return millions of rows in seconds. In addition it offers multiple other benefits. However this article isn’t about the benefits of Tableau extracts. Fortunately Tableau have written all about the benefits in their paper on the Tableau Data Engine.

2. Create calculated fields in your data source BEFORE publishing the data source to the server. This optimises the calculation. Creating calculated fields in the workbook slows things down. Note, some calculations can’t be optimise / pre-aggregate, such as COUNTD, therefore they will always be slower.

3. Optimise your extract. It’s in the toolbar under Data – Extract – Optimize. If your extract is pulling from a SQL Server and the extract refresh speed isn’t good there are things you can do to speed up the refresh of Tableau extracts based on SQL.

4. If connecting live, your dashboard performance depends on the performance of your underlying database. Each component on your dashboard means a separate query to run against the database. Therefore the more objects on the dashboard, the slower it will be.

5. Reduce the amount of data coming into the workbook. Remove redundant fields entirely and use Data Source filters where possible. Consider implementing row level security to reduce the number of records Tableau needs to process to render the view – Tableau will only need to calculate the rows the user is able to see, instead of all rows in the data source.

Speed up your dashboard making changes within the workbook

6. Use Window_sum instead of Total. This post gives details on that and also advises how to speed up the Window_xxx functions.

7. Although already mentioned in #2, build your calculated fields in the data source, then republish the data source. Calculations in the workbook are slower than the same calculation embedded within the data source.

8. With bins, it’s quicker to use the Tableau auto-created bins (right click on a Dimension and select Create Bins) than to create custom bins using a calculated field. If the bins need to be custom, if possible create the bins in the source data rather than in Tableau. If creating bins by calculated field then refer to #2 above.

9. Quick filters can be slow – the more you have on the dashboard the longer it will take to render, especially if they’re set to only show Only Relevant Values. Each time a filter is changed the quick filters recalculate when showing relevant values.

10. FIXED Level Of Detail calculations are slow against large data sets. Try and avoid extensive usage of these calculations, especially when using at multiple levels. For example, a simple {MAX([Date])} is fine, but more complex and granular FIXED calculations are bad for performance. Consider table calculations as an alternative.

11. Data blending can be very slow, especially if blending two large data sources. Therefore, with large data sources, do not data blend at a granular level; for example at an ID level. Try and only blend at the highest level possible within the data sources. The more granular the blend, the less performant. And use Data Source filters in the secondary data source(s), reducing the data coming from the blend to only what is needed.

12. (from the comments, thanks!) Reduce the number of worksheets in the workbook. Delete those worksheets that aren’t needed. The more worksheets in the workbook, the worse the performance, especially the initial load when the dashboard is first opened.

13. Use more Boolean values in your calculated fields. Tableau evaluates boolean quicker than any other data type

14. Use CASE statements instead of IF statements. CASE statements can evaluate more efficiently than IF statements. An IF statement evaluates for each row of data, while a CASE statement can be more targetted, which can make a difference in large data sources.

15. Reduce mark-heavy tables. Instead of showing all records, show only the top X by default, or show none and make the user populate a table by another selection on the dashboard. For example, click a bar in a bar chart to load the relevant details behind that bar in a table.

If there are more suggestions please send them my way and I’ll update this article accordingly.

1 thought on “Improve Your Tableau Dashboard Performance”

  1. Have you seen degrading performance on a dashboard when you have around 10+ worksheets ? It seems to be making multiple requests back to the database (even the Tableau extract) and slows down performance.


Leave a Comment