I recently stumbled upon a performance issue in a Tableau dashboard where I included two tables that were displaying around 500k rows each, and it was taking a huge toll on the dashboard’s performance. For reference, this was the layout of my dashboard, where the bottom row of views were causing the most problems in my workbook:

The Problem: Tables Querying Massive Data

The text tables in my dashboard were querying over a million rows combined, and as you can imagine, this significantly slowed down my dashboard. It became clear that I needed a strategy to improve the performance without compromising the user’s ability to access granular data. There were three ways I explored to optimise this situation, which is what I wanted to share in this blog.

Solution 1: Adding a Filter Action

  1. Create a Filter Action:
    • In my dashboard, I connected the bar charts (monthly aggregated views) to the text tables using a Filter Action.
    • When a user clicks on a bar, the table queries only the rows related to that selection.
  2. Set ‘Clearing Selection Will’ to Exclude All Values:
    • This ensures the tables are blank when no selection is made. The tables only populate when the user clicks a specific bar (e.g., January data), which significantly reduces the amount of data queried.

Trade-offs:

  • Pros: This solution is simple, requires minimal effort, and improves performance by querying only a subset of rows.
  • Cons: It requires/depends on user interaction; the tables remain blank unless a bar is selected. If users want to see all rows, they’ll need additional navigation.

Solution 2: Pagination

Pagination is another effective way to optimize table performance. Instead of displaying all rows at once, pagination allows you to break your data into smaller, more manageable chunks with navigation buttons (e.g., Numbered pages, Next, Previous) like the example below:

Implementing this solution does require a bit of work, which includes many steps such as creating parameters for page numbers and calculated fields for navigation buttons. For a step-by-step guide on implementing pagination like the example above, I recommend this phData article

Trade-offs:

  • Pros: Improves performance by querying only the rows for the selected page. It’s intuitive for users and works well for long reports.
  • Cons: Pagination requires more setup and design effort. Users might find navigation cumbersome if they need to view multiple pages quickly.

Solution 3: Using an ‘Export All’ Extension

If your users need access to all rows but performance is critical, consider using an Export All Extension. This allows users to export the full dataset to an external tool (e.g., Excel) for offline analysis.

How to Implement:

  1. Install an Extension:
  2. Provide Clear Instructions:
    • Let users know they can export the data to analyse it in detail outside of Tableau. Provide a button or link that triggers the extension.

Trade-offs:

  • Pros: Great for maintaining dashboard performance while still giving users access to all rows. Suitable for users comfortable working with data outside Tableau.
  • Cons: Not ideal for dashboards where users need to view everything within the tool. It adds extra manual steps, which may reduce user satisfaction.

To conclude, Tableau is a powerful tool, but performance issues can arise when dealing with large datasets, especially tables querying hundreds of thousands of rows. Each of the methods presented in this blog has its trade-offs, so consider the needs of your end users and the complexity of your dashboard. Good luck!

Bel ons

Afspraak

Mail ons