If you have been working with Tableau, you have most likely noticed that sometimes, your dashboards are taking too much time to render. Especially when working with large datasets with millions of records for example. Performance issues is one of the most disruptive elements for working efficiently. Luckily, there are a number of tasks available to perform that will help decrease these long rendering times. In this blog, I will share the most common best practices for you to improving performance of your dashboards in Tableau.
Before we get started, it is important to note that not all the best practices will work for your unique problems. Or that you just will not be able to apply all these best practices. It really depends.
Aside from fixes you can perform within Tableau to improve performance, there are further considerations that should be acknowledged while working to improve performance. One of the most important things that matter is your hardware itself. If it is a slow computer in general. Tableau will naturally run slow as well. Another important thing to note is also your network speeds. If the data is not on your local machine and you are connecting through a server. Your network speed is a relevant aspect. It is good to check whether any inconsistencies exist in your network speeds.
However, when we consider the tasks that can be done in Tableau, there are several best practices you can start with. Without further ado, lets begin with the first one:
Start with a Performance Recording
The performance recording feature should be your first step into improving performance, since it is an indication of where the problems might be coming from. To start a performance recording on Tableau Desktop:
Help > Settings and Performance > Start Performance Recording
The performance recording should be started from an empty workbook. Open the workbook afterwards. This way you can monitor what happens all the way from the beginning at launching the workbook. After this, start interacting with the workbook. It is also good to note down what takes extra long time for yourself so it is faster to reference and compare with the results of the performance recording. For more information on making a performance recording and interpretation, visit this page.
On Tableau Server, this is done a little different. However, the resulting report will be the same. To see how a performance recording is started in Tableau Server, visit this page.
Looking at how the calculations are created and their function is another area where improvements on performance can be made if the right set of actions are taken. One of these actions is avoiding referencing other calculated fields within calculated fields (Nested calculations). This will result in performance issues. If there has to be a need that a calculation needs to be referenced, make sure you only reference it once and not multiple times.
It is important to ask yourself the question "To what extent these calculations can be pushed back to the data source?". Calculating at the data source level will improve performance if calculations are overloaded in the later steps of the order of operations. Data source filters are the second step in Tableau's order of operations. If the calculations cannot be pushed back the data source, "To what extent can you use Tableau Prep or Alteryx to prepare data further?".
In addition to this, there are certain other tasks you can apply as well, these include:
- Use number formats (bool, int, float) more than string and date data types where applicable. Number formats are easier to compute.
- Table calculations can be slower to compute. If the problems lie here, try making calculated fields of pushing back to the data source.
- Avoid the use of ATTR() if you are not expecting multiple dimensions to be returned. Use MIN() or MAX() if you can in your calculations.
There are many other tricks you can apply to your calculations for improving performance of your dashboards. This page goes through more detailed best practices on writing calculation in Tableau. Also see this page to see how to make more efficient calculations in Tableau in more detail.
Joins, Union and Relationships
Joins, Unions and Relationships are steps that need to be taken when working with multiple data sources. They are configured before views are created. Therefore, it is a very important step to do right in setting the standard of the data that you will be working with. When you are working with multiple data sources with vast numbers of records, the performance of your Dashboards can suffer. However, there are multiple ways you can improve performance with how your joins, unions and relationships are configured.
An important thing to note is more joins, unions or relationships does not mean it is better. If applicable, consider building your tables before pushing them into Tableau. In some situations, having less data sources is better for performance.
With 2020.2 release, Tableau introduced some new data model capabilities with relationships. Relationships in Tableau create logical connections between data sources, whereas joins and unions create physical connections. This new model helps improve performance. In addition, in the configuration window of relationships, you can view performance options and configure them appropriately for your case.
Optimising the use of Quick Filters
Quick filters are any measure or dimension fields that are placed in the "Filters" card. These filters perform quick changes in the view to answer relevant questions.
However in some occasions, these filters are not so "quick". If you have a slow performing workbook, the initial launch might have the quick filters performing at their slowest. As you interact more, it is possible that they get faster. Luckily, there are some quick work arounds for optimising these filters for improving performance including:
- Only use "Show Relevant Values" in filter configuration dropdown when it is absolutely necessary. This creates subsequent queries which slow down performance. Using set actions and parameter actions is a good way to tackle this problem.
- Enable "Apply" button with filters with multiple selections in the filter configuration dropdown > Customise > Show Apply Button. This prevents repetitive queries each time a selection is made and computes the query at once.
- Too many filters at one dashboard? Use multiple dashboards at different levels of aggregation.
Every single time you use a context filter, you refresh the cache information. This ultimately can also decrease performance as well. If it is necessary, using one context filter already helps a lot rather than using many.
Other Best Practices
Hiding and Removing Data
Ultimately, you should always get rid of what you do not need. Extra bits of information that is not relevant to your dashboard is only going to create more problems than good. Make sure your data source matches your questions and what you want to get out of the data.
Rendering your Dashboard
It is important to note that the "Automatic" configuration for the size of your dashboard might contribute to performance issues as well. The Automatic setting needs to determine the screen size before rendering. More processes makes drivers perform worse. Try to use a fixed size for your dashboards.
Remove Unnecessary Items
Remember that everything present in the Tableau environment takes time to render. More time spent rendering means slower performance. Each worksheet will be at least an additional query to compute. Remove all unnecessary charts, sheets and marks that are not being used.
In addition to all the best practices that are discussed in this blog for improving performance, there are of course many other trick that you can perform to help with performance. Here is one last additional link to give you further tips for optimising workbook and dashboard performance.
Visit our site The Information Lab NL to see more blog posts, our training and consultancy services regarding Tableau, Alteryx and Snowflake.