Record and Analyze Workbook Performance
The Performance Recording feature in Tableau records the performance information about key events when you interact with a workbook. You can also view performance metrics in a workbook that Tableau creates to analyze and troubleshoot the different events that affect performance:
- Query execution
- Compiling query
- Connections to data sources
- Layout computations
- Extract generation
- Blending data
Tableau support may ask you to create a performance workbook as they work with you for diagnosing performance issues.
Create a performance recording in Tableau Desktop:
To start recording the performance, follow the below step:
Help > Settings and Performance > Start Performance Recording
To stop recording the performance and view a temporary workbook that contains results from the recording session, follow the below step:
Help > Settings and Performance > Stop Performance Recording
You can then view the performance workbook and start your analysis.
Click File > Save to save the workbook. If you are sending the recording to Tableau Support, save the workbook as a packaged workbook (.twbx) file, and then send it.
How to interpret a performance recording workbook?
A performance recording workbook consists of two main dashboards: Performance Summary and Detailed Views. The Performance Summary dashboard gives a high-level overview of the most time-consuming events. The Detailed Views dashboard gives a lot more detail and is intended to be used by advanced users when building workbooks. The Detailed Views dashboard is visible only when the performance recording workbook is opened using the Tableau Desktop.
The Performance Summary dashboard consists of three views: Timeline, Events, and Query.
In the performance summary recording dashboard, the uppermost view shows the events that occurred during the recording, arranged chronologically from left to right. The bottom axis shows the elapsed time since Tableau started, in seconds.
In the Timeline view, the Workbook, the Dashboard, and the Worksheet columns identify the context for an event. The Event column identifies the nature of an event, and the final column shows duration of each event and how it compares chronologically to other recorded events:
The middle view in the performance summary dashboard shows the events, sorted by duration (from greatest to least). Events having longer durations can help you identify where to look first when you want to speed up your workbook.
Different colors indicates different types of events. The range of the events that can be recorded is shown as:
- Computing layouts: If layouts take too long, you can consider simplifying your workbook.
- Connecting to the data source: Slow connections could be due to the network issues or issues with the database server.
- Compiling query: This event will capture the amount of time spent by the Tableau in generating the queries. Long compile query times indicates that the queries generated are complex. The complexity may be because of too many filters, complex calculations, or generally due to a complex workbook. Instances of complex calculations include lengthy calculations, LOD calculations, or nested calculations.
- Executing query
- For live connections, if queries take too long, it could be because of the underlying data structure that is not optimized for Tableau.
- For extracts, if queries take too long, review your use of filters.
- Generating extract: To speed up the extract generation, consider only importing some data from the original data source. For instance, you can filter on specific data fields or create a sample based on a specified number of rows/percentage of the data.
- Geocoding: To speed up the geocoding performance, try using either less data or filtering out data.
- Blending data: Speed up data blending using either less data or filtering out data.
- Server rendering: Speed up server rendering by running additional VizQL Server processes on additional machines.
Suppose you click on an Executing Query event in either the Timeline or Events section of a performance summary dashboard. In that case, the text for that query is displayed under the Query section.
If you are connected to the published data source, the query text is always displayed in XML. If you are connected directly to the data source, the query is always displayed in SQL, as shown below:
You can use the query text while working with your database team on optimizing at the database level. Sometimes the query is truncated, and you will need to look in the Tableau log to find the full query. Most database servers can advise how to optimize a query by adding indexes or other techniques.
Sometimes for efficiency, Tableau combines the multiple queries into a single query against the data. In this case, you will see an Executing Query event for the Null worksheet and zero queries being executed for the named worksheets.
This Detailed Timeline is the detailed version of the Timeline view showing all events and separates individual items grouped in the Timeline view and it is intended to be used by advanced users during workbook designs.
The Detailed Views dashboard contains Depth, Inclusive CPU, Exclusive CPU, and Elapsed Time views.
This is the uppermost view in the Detailed Views dashboard and provides insights into what happens when a request is made. This view is useful when filtered to a single user request. Instances of user requests are: loading a view, selecting a mark, or changing a filter.
Each bar on the depth view will represent a single activity. An activity is a unit of work done as a part of processing a user request. A single user request the results in multiple activities. The length of each bar in the depth view is always proportional to the elapsed time for the activity that the bar represents.
High-level activities appear at the top of the view. Activities that are lower down are the child activities generated by high-level activities.
Hovering over each bar provides some additional details about the activity and highlights the corresponding row in the CPU and Elapsed Time view.
To narrow down what parts of the request took the most time, investigate long-running activities at the highest levels.
CPU and Elapsed Time
The CPU and Elapsed Time views appear at the lowermost in the Detailed Views dashboard. You can toggle between the Exclusive CPU, Inclusive CPU, and Elapsed Time views by clicking on the radio buttons.
While the Depth view can help in the quick visual identification of long-running activities, it may or may not necessarily highlight activities that happen multiple times, with each instance taking a small amount of time. The Exclusive CPU, the Inclusive CPU, and the Elapsed Time views provide the aggregate statistics for each activity. The number of times an activity has taken place is shown under the Count column, and the total time taken by a single activity is shown by using the bar chart.