Wednesday, January 30, 2013

Ways to Improve Performance in Tableau

Today, we will talk about various ways to improve the performance of your Tableau dashboards.  I recently worked on a project with a company that did not invest much into their server.  Therefore, they were handicapped by query speed and visualization performance.  However, that's not a problem for us, is it?  We are professionals.  So, let's look at some of the methods that can be used to squeeze as much as possible out of a small system.

Step 1:
  • Use an extract.
There is nothing else that comes close to the efficiency gained using an extract.  If you don't absolutely need live data, extracting is the best bet.

Step 2:
  • Limit your dashboard to fully answering only one scenario.
At it's simplest, a dashboard should be able to fully explore a single scenario.  If your dashboard has six sheets, five actions, and 3 quick filters, you might not be looking at only one scenario.  Remember, no matter how elegant and comprehensive your solution is, if it doesn't run as quickly as the user would like it to, he or she will not use it.  I would not recommend butchering your dashboard so heavily that it cannot fully handle a scenario.  If the user has to go somewhere else to find the answer, why did they use your dashboard at all?

Step 3:
  • Limit the data being introduced to each worksheet.
If you are not planning on using a set of rows, you should filter them out of the data set as early as possible.  If your table contains all sales, and you only want to look at US sales, create a Custom SQL query that filters it out.  If the filter is worksheet dependent, try using a Context Filter.  For more information on filtering, check out my other post Types of Filters in Tableau.  You can also click the Down Arrow beside the word "Dimension" and Select "Hide All Unused Fields" to hide any fields you are not using in any of your worksheets.  I'm not sure if this improves efficiency; but I'd have to imagine that it does, less data should always improve performance.

Step 4:
  • Remove components that add no value.
While aesthetics are very important to building a usable dashboard, unimportant objects aren't worth losing efficiency over.  In fact, you would be better off adding more functionality than you would by adding a purely aesthetic object.

Step 5:
  • Eliminate any non-essential components from the visualization.
This refers to values that would appear on the Pages, Filters, and Level of Detail Shelves.  If they are purely there for the user to see if they scroll over a point, then they aren't adding any value to the initial glance.  However, I leave this as the last step because it should be a last resort.

In most cases, a little forethought can save you a lot of heartache when you are creating dashboards.  Decide exactly what story you want to tell, and tell only that.  It is much easier to add functionality to a small dashboard, than to butcher a large one.  Thanks for reading.

Brad Llewellyn
Associate Consultant
Mariner, LLC