How do I optimize the performance of my dashboard? I get asked this question a lot. There are multiple ways to do so.
According to the Doherty Threshold, you want your dashboard to render under 400ms (Link). You don't want your clients to have to wait for their data with slow unresponsive dashboards.
The following tips are found in this article the "6 Tips to Increase Dashboard Performance" by Nicolas Hara, and this white paper titled "Designing Efficient Production Dashboards" by Ben Bausili.
Look at your Data Source
Your data source will impact your dashboard. Is your data slow? Then it will be even more slow in Tableau. Imagine someone walking in jogging suit. If you added a heavy 50 pound backpack, will decrease their walking pace? Tableau adds rendering time on top of the data. Here are some tips on Data Sources;
Use Extracts and not Live data sources. Refer to this article by Gordan Rose for the why.
Make your data Tall not Wide. Extracts are formatted as columnar. If you have a Wide data set, it will slow down Tableau's ability to pull that data.
Did you know you can Hide All Unused Fields in the Data menu? It is a good practice to minimize the number of fields and records you bring into a dashboard.
Do you have Blends or Joined Tables? If you are blending, make sure its on a few number of items. The more columns etc in a blend, the longer it takes to render. If you have joined tables, joins also take a lot of time, especially if you are joining multiple tables.
Can Calculations Impact Performance?
Look at your calculations. Can you perform the calculation outside of Tableau in something like Alteryx or other ETL tool? When you add calculations in Tableau you are creating overhead, or using processing power. Here are some other facts about calculations;
Did you know Numeric formulas process faster than String formulas? The order of speed for the data types are; Boolean, Integer, Float, Date, DateTime and then String.
Are you using the Average formula? This requires more processing in your worksheet. Tableau recommends that you use MIN or MAX functions instead and it can produce the same result.
Do you have an Level of Detail (LOD) expression with conditions? This causes the LOD to be more granular and take up processing time.
Have you ever grouped data? Did you know if you group your data based on a calculation, it can be faster than just a regular group.
Tableau is not Excel
Large Table views that mimic an Excel spreadsheet are slower than other views.
Tableau is not meant to replace Excel. If you find your dashboard looks like a large table and you have more than 5 filters; you considerably slow down the function of a dashboard. If your client wants to slice and dice the data, I'd recommend using Excel's Splicing function instead.
Every time you add a filter, you are asking Tableau to run a query for each filter. Do these filters add time to the decision making process? Remember you are designing these dashboards for quick analysis. Every time you add a visual you have ask yourself if it really adds anything of value.
Reduce the number of Marks you have on a sheet. Tableau has to render all of these marks pulling in more detail. Crosstab reports with quick filters can cause longer load times because of its design. If you have Table Calculations and multiple Marks it takes Tableau longer to go through all the Marks to calculate the data.
Other House-cleaning Tips
There are some other general tips to help boost the performance of your dashboard;
Delete unused worksheets, and data sources. If you aren't using it, it's taking up space.
Used a Fixed Dashboard size. If Tableau has to auto-size your dashboard this will be less efficient later.
Test your dashboard in separate Browsers.
Delete unused layouts such as the phone view. They also take up space.
Comments