9.0 Preview: Query Performance Improvements

By Clara Siegel January 30, 2015

When you can ask questions faster, without waiting for a long running query or a page to load, you are able to stay in the flow of analysis. This lets you focus on your data and creatively explore the insights it has to offer, uninterrupted. That’s why in Tableau Version 9.0 we’ve invested in making performance enhancements across the product to help you get results faster and ask deeper questions.

Here are a few examples of the many improvements that we’ve made in Tableau 9.0. Each example illustrates how the improvement is impacting performance, using a standard 4-core commodity laptop. Of course, your mileage may vary based on the amount of data, the type of queries, and the underlying database that you are using. Bear in mind these are examples and not a statement of performance gains you should expect on every data set.

Data Engine Improvements
Tableau has a strong history of groundbreaking innovations in performance, most notably is Tableau’s Data Engine that first launched with Tableau 6.0. The Data Engine is an in-memory analytic database, designed for much faster queries.

Data Engine improvements in Tableau 9.0 now make the fast analytic data engine even faster, with features that are designed to make the most of your underlying hardware. This example shows a 10X performance improvement on 173M rows of data:

Example: Visualization of Average Taxi Tip by Quarter

This visualization draws from a Tableau Data Extract file containing 173M rows of taxi payments data for 2013. The query for this view pulls the average tip amount by quarter, and shows that riders are more giving near the end of the year.

Result: 10x Improvement

Opening this worksheet in Tableau 8.3 shows that the query is already pretty fast for this size of dataset: about 7 seconds. For the same worksheet in Tableau 9.0, the exact same query runs in less than 1 second. Yes, less than 1 second! Due to Tableau’s improvements to the data engine, this is an improvement of 10x. Now users will have an even better experience seamlessly exploring data with Tableau’s Data Engine.

Parallel Queries
Tableau 9.0 also takes better advantage of the capabilities of source databases to execute more queries at the same time. This new “Parallel Queries" feature will improve Dashboard performance, on Desktop and Server. This example shows a 9X improvement on 157M rows of data:

Example: Flights Dashboard

This Dashboard shows flights data by airline from 1988 to 2013, based on 157M rows of data stored in a Tableau Data Extract file. Loading this Dashboard will run a number of queries including the number of flights for the top 3 carriers, flights over time, and the proportion of flights for each carrier on a state- by- state basis.

Result: 9X Improvement

Not only is each query faster, but independent queries start at the same time in Tableau 9.0. This results in massive improvements in overall performance. In Tableau 8.3, this Dashboard’s aggregate load time (from the start of the first query to the end of the last query) is 9.5 seconds. In V9.0, each query time is improved and the independent queries are run in parallel, driving load time to just over 1 second. This is a 9X improvement in performance loading these Dashboard queries.

Query Fusion
What’s better than faster queries? Fewer queries. Tableau 9.0 has a new technology for database connections called Query Fusion that will look at all of the queries in your dashboard and find ways to simplify them into fewer queries. That will result in less work for the database and faster response times for the user. This example shows a 2x improvement on an Amazon Redshift database:

Example: Hourly Taxi Data

This visualization uses the same 173M row Taxi data set as in the first example, except this time the data are stored on Amazon Redshift. There are two worksheets that measure hourly Sum of Rides, and hourly Average Tips combined in a dashboard, showing an interesting trend between 4 and 5 a.m. Because they have the same level of detail, the queries have the potential of being fused into a single query.

Result: 2X Improvement

Query Fusion recognizes that the two queries have the same level of detail and simply draws the aggregation of one into the other. This chart shows that what took two queries with Tableau 8.3 takes only one with Tableau 9.0. This feature improved aggregate query run time from 3.7 seconds to 1.7 seconds, a 2X improvement.

External Query Caching
Finally, imagine that no queries need to run at all, and tools simply step out of the way when starting analysis. When loading a workbook for the first time, Tableau queries the data source to get the values to create the visualizations. However, what happens the second time? If the data hasn’t changed, like with extract-based workbooks, why even query the data source?

Tableau 9.0 will save the query cache as part of the workbook on both Desktop and Server, offering near-instant load times for applicable workbooks. There is no need to re-query for answers since the results are already there, and users can simply refresh to replace the cache.

Imagine simply re-opening a workbook that has been opened locally before, or that has already been viewed on Server, and seeing a virtually instant load time. In v9.0, sometimes the best query performance features are when no queries need to run at all. This example shows a 50X improvement on 157M rows of data:

Example: Flights Dashboard

To demonstrate query caching, this example uses the same dashboard as in the second example showing the Parallel Queries feature. It shows flights data from a 157M row Tableau Data Extract file. The difference is that this dashboard is being opened for the second time.

Result: 50X Improvement

This External Query Caching feature in Tableau V9.0 saved the query results from the previous time that this dashboard was opened. As a result, only a single short query was run to fetch the cache. Tableau 8.3 re-opened the workbook with similar performance to the first time it was opened (about 10 seconds), Tableau 9.0 re-opened the workbook in 0.2 seconds. This is 5X faster than the first time it was opened (1.1 seconds), and compared to Tableau 8.3’s re-opening, a 50X improvement.

These are just a few of the exciting new performance features that will be introduced in Tableau 9.0. These features build on top of each other to provide unprecedented performance for users. Queries run faster on extracts, queries run in parallel for faster load times, fewer queries run, and in some scenarios, all the queries in a view will be eliminated with caching. Tableau 9.0 is faster, and we’ve got more in the pipeline that will let you have a more immersive experience with your data.

Want to Learn More?
Check out the rest of our Tableau 9.0 blog series


Submitted by Peter Thomsen (not verified) on

This is really great - especially the query fusion feature. Will this feature be available for all data sources or only a limited amount. I'm really interested in support for SSAS?

Submitted by Jeff F. on

Hi Peter,
Query Fusion should be available across all data sources using live connections.

Jeff Feng
Product Manager
Tableau Software

m: 949.610.5108
t: 206.633.3400 x6103
e: jfeng@tableau.com

Submitted by Peter Thomsen (not verified) on

That was really what I was looking for. Have a 25-30 sheet dashboard that basically just use different slices of 5 base queries.

Submitted by Cliff Robbins (not verified) on

To what extent will these performance changes benefit workbooks that use many Quick Filters?

Submitted by Ryan Baumann (not verified) on

I am excited to try these features, particularly parallel queries. Most of the workbooks I create join several data sources into one view. Will parallel queries work across all data source types? Will this help improve performance for "locally merged" data sources in the workbook?

Thank you for improving an already great product!

Submitted by Jeff Strauss (not verified) on

Thanks for a great writeup! I look forward to trying it out with my own data.

Submitted by SudhansuSP (not verified) on

how about providing more freedom in customizing or indexing tables inside tableau as per our query need?
plz give some stats w.r.t data volume size in terms of MBs and not rows.

Submitted by Chandan S. on

Looks great here

Submitted by Paul Banoub (not verified) on

This is easily the most welcome feature of V9. I run a Tableau Centre of Excellence at a big investment bank and have thousands of users. The only thing they moan about is speed. These improvements are really going to help.

I'm cautious at advertising some of the numbers being talked about though. Will it perform that well out in the wild in a big environment rather than a comfy test lab?

Great stuff

Submitted by Davi Capato (not verified) on

Olá, gostaria de saber sobre a conexão de dados automático com BI da SAP. hoje usamos base de dados SQL, e precisamos ter as informações em tempo real.

Submitted by Avishek Sarkar (not verified) on

Please can you let me know if Oracle will support Parallel queries.

Submitted by Bill C. on

Paul - Could not agree more! Very excited to see this in action.

Hope all is well.

Bill Cumiskey

Submitted by Radek (not verified) on

Hi, looks like there have been loads of great improvements introduced in 9.
Could someone just clarify for me this please - I currently have Tableau 8, to get 9, do I need to buy another license or it's enough to download and install Tableau 9 and activate using the same activation code? Appreciate if you could let me know please. Cheers!

Submitted by Phil Black (not verified) on

Strange, my tableau connects to a reporting database that is updated every month. I couldn't replicate or see any changes in speed.

Submitted by Harsha Tatikonda (not verified) on

Is the parallel query option enabled automatically? I use extracts, I don't parallel query happening here. When I open the performance recording it still shows sequential queries.

Submitted by Gorana (not verified) on

Tested yesterday, it works only on live connection (logic, isn't it). It is configurable http://kb.tableau.com/articles/knowledgebase/parallel-queries-tableau-server
However, watch out, if your e.g. oracle database has a lot of other users, this can lead to hitting the limit of maximum oracle connections.

Submitted by Alex S. on

I would also like to know if this is Automatically enabled or if there is a setting you must turn on. Thanks!

Add new comment

non-humans click here