Performance is key to the success of your dashboard. Where awesome visualizations increase the functional value of your dashboard, the user experience, very often, is criticized on its performance. Shortly, a bad performing dashboard is a bad dashboard.

Of course Tableau has anticipated on this by providing us tools and methods to avoid query latency such as tableau extracts. But what to do when tableau extracts are not an option?

What is Query Fusion?

Since version 9.0, Tableau has a new technology for database connections called Query Fusion. This technology will look at all of your dashboard queries and tries to eliminate any redundant queries. So where Tableau 8.x and earlier would run a query for each of your dashboard worksheets, Tableau 9.x will handle the queries in a more intelligent manner and eliminate similar queries.

How do I test it?

By using the Tableau Performance Recording you get a great overview of what’s going on in your dashboard and what exact queries are sent to its data sources.

On how to use the Tableau Performance Recording, I gladly refer to my other blog.

How do I enforce Query Fusion?

So now we know what Query Fusion is, we can easily tweak our dashboards to enforce this technology and reduce the number of queries run.

To align the level of detail of different worksheets I can trigger the Query Fusion technology and reduce the number of queries that need to run.

The dashboard:

For this easy dashboard I used a SQL Server data source and it contains 2 worksheets and 1 filter.

QueryFusion - 001 - NoFusionDashboard

Situation A: no Query fusion

If we have a look at the Performance recording to see what queries were executed, this is the result:QueryFusion - 002 - NoFusion PerfRec

As we can see, 2 queries are sent to the SQL data source, one for each of the worksheets.

Both of them are executed and returned their data.

Situation B: Query Fusion applied

The dashboard result looks the same, but let’s have a look at the Performance recording:

QueryFusion - 005 - Fusion PerfRec

Now we see that only 1 query is executed.

Where’s the difference?

No Query Fusion is applied.

Field

Sheet1

Sheet2

EnglishPromotionName

X

X

YEAR(Order Date)

X

X

EnglishCategoryName

X

X

EnglishSubCategoryName

X

Sum(SalesAmount)

X

Sum(OrderQuantity)

X

With Query fusion applied

Field

Sheet1

Sheet2

EnglishPromotionName

X

X

YEAR(Order Date)

X

X

EnglishCategoryName

X

X

EnglishSubCategoryName

X

X

Sum(SalesAmount)

X

Sum(OrderQuantity)

X

Including the EnglishSubCategoryName into the Sheet1 aligns both queries on the same level of detail on both worksheets.

Now the Tableau engine recognizes that both queries are on the same level of detail, and therefore applies the “Query Fusion” and sends only 1 query to the SQL Server data source. Which reduces the traffic on my network and database, and so reduces query time in my dashboard.

Win, win, win...
[/av_textblock]

Author
Bjorn Cornelis

Bjorn Cornelis

I help you get insights from your data. Easier. Faster.

Read more articles of this author
Let's discuss your data challenges

Join our community of data enthusiasts

Get industry insights, expert tips and Biztory news sent straight to your inbox with our monthly newsletter.