We’re starting a blog series dedicated to helping you improve the performance of Tableau in your environment. It all starts with the Best Practice Analyzer from Workbook Tools for Tableau. This feature lets you know exactly how you can improve your Tableau workbooks to run faster and smoother.
Each post in the series is related to specific performance issues that are flagged by the Best Practice Analyzer. If you don’t have it yet, get it. You can also check out more guidelines found on our Tableau Performance Checklist.
In this post, we’ll talk about the perils of automatic dashboard sizing.
In the dark days of Tableau (prior to version 3.1), you didn’t have much control over dashboard sizing. Thankfully, that’s no longer the case. Up through version 7, we’ve had the ability to control how our dashboards are sized. Still, there was a problem. The default setting for dashboard size prior to version 8 was “Automatic.” Automatic dashboard sizing presents us with a couple of minor problems and one very big problem. Let’s break them down:
Unpredictable Results
With automatic dashboard sizing, it’s really hard to predict how your dashboard will look on different screens. We know some people really don’t like “wasting” screen real estate. With the huge monitors some folks have access to, there can be a lot of screen real estate to work with. The problem here is that if we design a dashboard on a gigantic 23 inch monitor and you look at it on your laptop, it’s going to look … how can we put this … NOT good. It will look very, very NOT good.
We have the same problem if we design a dashboard on a laptop and you then look at it on your 30 inch HD Flat Panel Apple Cinema display. Things won’t be where we expect them to be as the designers. The experience of one analyst could be wildly different from the next just because of how the dashboard renders on screen. NOT good.
Poor Performance
The bigger problem here, bigger even than unpredictable layouts (which is saying a lot), is performance. Tableau Server does some pretty cool stuff in the background to try to minimize the work it’s doing, therefore maximizing performance. Tableau Server will remember every dashboard it renders and the sizes it rendered them at.
If you have one dashboard that is being viewed by five different people on different sized screens, Tableau will consider that one dashboard to be five different dashboards from a rendering standpoint. If you design your dashboard with a preset size, Tableau Server will be able to reuse its model-level cache. In other words, it will render the dashboard into memory once and then simply serve each new request for the same dashboard from memory instead of rebuilding it from scratch each time.
Of course, this only helps us the second time the dashboard is requested and only if that dashboard still exists in the model cache. I’ll take that over the alternative (not reusing cache) any time.
Lessons Learned
In the end, it’s simple. Get in the habit of setting a defined size for your dashboards (NOT automatic), and you’ll have more control over the layout of your dashboard when it renders on different size monitors. Even better, if your audience is consuming your dashboards through Tableau Server, they will (probably) get better performance!
Curious about other Tableau workbook performance best practices? We have a growing list of posts to help you out. Here are the topics we’ve covered so far:
- Custom SQL Connections
- Limit Calculated Field Length
- Context Filters
- Reduce Number of Dashboard Worksheets
- Conditional Filter Logic
- Images & Shapes
- Word Clouds
- Mixed Data Connections
- Quick Filter Cardinality
- Relevant Value Filters
- Row-Level Parameters
- Table Calculation in Level of Detail
- Teradata Initial SQL
- Unused Data Sources
- Blending Calculations
- Unused Columns