Tableau Workbook Performance Checklist
Before you start building your visualisations and dashboards, you will want to be aware of what choices might impact performance in your workbooks on Tableau Desktop, Tableau Cloud and Tableau Server.
This checklist is intended to make you aware of things you will want to consider related to workbook performance. Remember that all environments are different and there is no simple cure for workbook performance. The items below are areas to explore. Any given item may not apply to your situation or be the cause of poor performance. Always test what helps in your specific case.
Learn more: For more in-depth and related information beyond this topic, see:
Optimise Workbook Performance(Link opens in a new window)(Link opens in a new window) topics in Tableau help
Designing Efficient Workbooks(Link opens in a new window) whitepaper on tableau.com
Designing Efficient Workbooks(Link opens in a new window) (1 hour) and Best Practices for Dashboard Performance(Link opens in a new window) (50 minutes) free, video presentations
The Tableau Performance Optimisation Flowchart(Link opens in a new window) and The Tableau Performance Checklist(Link opens in a new window) in the InterWorks blog(Link opens in a new window).
General tips
This general list of considerations is a start in learning how to approach optimising workbooks. It comes from the TL;DR page in the Designing Efficient Workbooks(Link opens in a new window) whitepaper.
The cleaner your data is and the better it matches the structure of your questions, the faster your workbooks will run and the happier your life will be. Only connect to the data that you need for analysis.
Extracts are a quick and easy way to make most workbooks run faster. If you don’t need real-time data and aren’t working over billions of rows of data, you should try them.
The majority of slow dashboards are caused by poor design – in particular, too many charts on a single dashboard, or trying to show too much data at once. Keep it simple. Allow your users to incrementally drill down to details, rather than trying to show everything then filter (guided analysis).
Don’t work with data you don’t need – both in terms of the fields you reference as well as the granularity of the records you return. Use filters, hide unused fields and aggregate.
While reducing the data, make sure you use filters efficiently.
Strings and dates are slow, numbers and Booleans are fast.
There is no silver bullet for inefficient workbooks. Start by looking at the performance recorder to understand where the time is going. Long-running queries? Lots of queries? Slow calculations? Complex rendering? Use insights to focus your efforts in the right direction.
Upgrading to the newest version may boost performance without needing anything else.
If it is slow in the data source, it will be slow in Tableau Desktop. If it is slow in Tableau Desktop, it will (almost always) be slow in Tableau Server.
Performance tuning is highly individualised to the context of your environment, data, analysis and workbook. What works in one situation may not work in another test and iterate to see what works in your specific case.
Data source and structure
Prepare your data to match the structure of your analysis before you connect to it in Tableau Desktop. Tableau Prep(Link opens in a new window) is a helpful tool for getting your data ready.
Enable support for referential integrity(Link opens in a new window).
Index the tables in your relational database.
Make sure database permissions support creating temp tables.
Connect with native database drivers.
Whenever possible, connect to an extract rather than a live data source.
Limit the amount of data that you bring into Tableau to what is necessary for your analysis.
Consider using aggregated extracts and extract filters.
Optimise extracts and hide unused fields before creating an extract.
Avoid using custom SQL.
Identify when you should be joining, blending or using a cross-database join.
Keep joins as limited as possible. Consider using multiple data sources so each type of analysis is built off a well-designed join.
Consider aggregating before blending.
Related topics and resources
Building views and dashboards
Keep it simple. Break massive workbooks up into separate files, and consider using fewer sheets on a dashboard.
Reduce the number of marks in the view – only add the fields you need, and use filters judiciously.
Turn off automatic updates when building a view. Set up multiple steps before asking Tableau to perform the actions.
When possible, try to use the same level of detail on multiple sheets on a dashboard to enable query batching.
Limit the number of filters used – use guided analytics and filter actions when possible.
Use fixed-size dashboards. They don't have to be re-rendered for different window sizes.
Custom geocoding can massively inflate the size of a workbook.
Related topics and resources
Design for Performance While You Build a View(Link opens in a new window)
Turn off Automatic Updates to Boost Performance(Link opens in a new window)
Filtering
Filtering is one of the most common causes of poorly performing workbooks and dashboards.
Use Extract and Data Source filters to limit the amount of data being brought into Tableau.
Filters are more efficient when the data source is indexed.
Context filters are evaluated before other filters in the view and should be used to help force an order of operations, but they no longer help improve query performance.
Be aware that using Keep only and Exclude to filter out discrete items can be performance heavy.
Filtering on a categorical dimension value that summarises many points – such as filtering a state instead of all the cities in that state – is more efficient.
Filtering on a range of values is often faster than filtering on large itemised lists of discrete values.
Cross-database filters can require multiple queries when values are updated. Enable the Show Apply Button option on filters to let users apply the filter after making their selections.
The Only Relevant Values filter option creates a query each time the other filters are changed. For dashboards that use guided analytics, try using Filter Actions instead.
Applying filters to multiple worksheets creates multiple queries.
Enable the Show Apply Button option on filters. This lets you and your users click Apply to run a single query for multi-select filters.
Calculations
Booleans and integers are faster than strings and dates.
MIN and MAX functions perform better than AVG and ATTR.
When possible, use native Tableau features – groups, sets, bins, custom date fields, combined fields and aliases – instead of calculations.
Use optimised functions like CONTAINS and DATEPARSE or MAKEDATE when possible, rather than more complicated manual calculations, especially with dates.
COUNTD is one of the slowest functions types, avoid when possible.
If a table calculation is performing badly, see if it can be expressed via a LOD expression, and vice versa.
Related topics and resources
Other Suggestions
Publishing to Tableau Server will not improve performance. Tune your workbook in Tableau Desktop first.
Use the performance recorder to identify where to focus tuning efforts.
Upgrade to the latest version of your Tableau product.