Was this page helpful?
Yes No

Troubleshoot Performance of Workbooks with Calculations

Tableau Server on Windows now includes Tableau Services Manager (TSM), which replaces the Configuration Utility and the tabadmin command line tool. If you need help for an earlier version of Tableau Server, see the Tableau Help page.

In most cases, you can expect to see similar or better performance after upgrading your Tableau Server from versions 10.4 or earlier to 10.5 or later. However, for workbooks that use complex calculations, you may see performance issues after you upgrade. This article describes how to test and troubleshoot performance issues for workbooks that have calculations and use extracts as the data source after you have upgraded your Tableau Server from versions 10.4 or earlier to 10.5 or later.

If you have not yet upgraded to Tableau Server 10.5 or later, we strongly recommend that you set up a test environment and test your workbook performance before you upgrade your production Tableau Server. For more details, see Test Workbook Performance.

If you have already upgraded to Tableau Server 10.5 or later, and you are experience slow response times, use the guidance provided in this topic to help troubleshoot performance issues.

Here are the scenarios that most likely describe your environment after upgrading to Tableau Server 10.5 or later:

Scenario: You upgraded your Tableau Server recently. You are experiencing slow response times and the majority of your extracts have not been refreshed, so they are still in .tde format.

  1. Disable any scheduled or automated extract refreshes.

  2. Enable the following setting on Tableau Server to check the number of query nodes required for Tableau to generate the workbook and display an error when the set limit is exceeded. The error message might say something like: "Logical Query tree has 2348182 nodes, maximum number allowed is 1000000...." :

    Use TSM CLI to run the following commands:

    tsm configuration set –k native_api.node_limit_checker_pre_rewrite_disable -v false

    tsm pending-changes apply

    Note: This setting is only available in Tableau Server 10.5.3 or later. While enabling this setting improves the reliability and stability of Tableau Server, you may see errors on a very small percentage of workbooks when you enable this setting. For example, the Tableau team saw errors on 0.01% of the workbooks with this setting enabled on Tableau Online.

  3. Test the workbooks by viewing or interacting with them. You should see an error message informing you about exceeding the node limits on workbooks that have performance issues. The error message might say something like: "Logical Query tree has 2348182 nodes, maximum number allowed is 1000000....".

  4. Use Tableau Desktop to troubleshoot your workbook performance. Run this command to enable the node limit check in your Tableau Desktop:

    tableau.exe -DNodeLimitCheckerPreRewriteDisable=false

    Note: This setting is only available in Tableau Desktop 10.5.3 or later.

    In Tableau Desktop, download and open the workbooks that displayed the error message about high node limits in step 2. Try optimizing the performance of workbooks using methods described in Best Practices for Creating Calculations in Tableau. If successful, publish these workbooks to Tableau Server. If you are still experiencing performance issues, continue to the next step.

  5. For workbooks that load successfully, but the overall response times is slower after upgrade, try using the Compute Calculations Now option. If you have a large number of workbooks that fall under this category, consider enabling the server-wide setting to retain materialized calculations for all extracts when they are upgraded from .tde to .hyper:

    Use TSM CLI to run the following commands:

    tsm configuration set –k native_api.preserve_calculations_on_hyper_refresh_conversion -v true

    tsm pending-changes apply

    Considerations for turning on this setting:

    Turn this setting on only if the majority of your workbooks require calculations to be materialized. There are resource and time costs associated with this setting, which are as follows:

    • When this setting is set to true, the extract file size will increase, affecting the overall disk space.

    • Extracts with materialized calculations take a longer time to refresh than extracts without materialized calculations.

    This setting only affects extracts that have not yet upgraded to .hyper. Extracts already upgraded to .hyper before turning on this setting, will not have the calculations materialized. This setting will also not affect workbooks and extracts published from Tableau Desktop, or any new extract refreshes published to Tableau Server that do not use the Compute Calculations Now option.

    Note: This setting is only available in Tableau Server 10.5.3 or later.

  6. Enable extract refresh schedules.

Scenario: You upgraded your Tableau Server recently. You are experiencing slow response times and a majority of your extracts have been refreshed and upgraded from .tde to .hyper.

  1. Restore the backup you made before you upgraded your production Tableau Server.

    Note: This method assumes that your workbooks have not changed significantly since the upgrade and, or it is OK to go back to the state just before upgrade.

  2. Disable any scheduled extract refreshes.

  3. Enable the following setting on Tableau Server to check the number of query nodes required for Tableau to generate the workbook and display an error when the set limit is exceeded. The error message might say something like: "Logical Query tree has 2348182 nodes, maximum number allowed is 1000000....":

    Use TSM CLI to run the following commands:

    tsm configuration set –k native_api.node_limit_checker_pre_rewrite_disable -v false

    tsm pending-changes apply

    Note: This setting is only available in 10.5.3 or later. While enabling this setting improves the reliability and stability of Tableau Server, you may see errors on a very small percentage of workbooks with when you enable this setting. For example, the Tableau team saw errors on 0.01% of the workbooks with this setting enabled on Tableau Online.

  4. Test the workbooks by viewing or interacting with them. You should see an error message informing you that you are exceeding the node limits on workbooks that have performance issues. The error message might say something like: "Logical Query tree has 2348182 nodes, maximum number allowed is 1000000....".

  5. Use Tableau Desktop to troubleshoot your workbook performance. Run this command to enable the node limit check in your Tableau Desktop:

    tableau.exe -DNodeLimitCheckerPreRewriteDisable=false

    Download and open the workbooks that displayed the error message using Tableau Desktop. Try optimizing the performance of workbooks using methods described in Best Practices for Creating Calculations in Tableau. If successful, then publish them to Tableau Server. If you are still experiencing performance issues, continue to the next step.

  6. For workbooks that load successfully, but the overall response time is slower after upgrade, try using the Compute Calculations Now option. If you have a large number of workbooks that fall under this category, consider enabling the server-wide setting to retain materialized calculations for all extracts when they are upgraded from .tde to .hyper:

    Use TSM CLI to run the following commands:

    tsm configuration set –k native_api.preserve_calculations_on_hyper_refresh_conversion -v true

    tsm pending-changes apply

    Considerations for turning on this setting:

    Turn this setting on only if majority of your workbooks require calculations to be materialized. There are resource and time costs associated with this setting, which are as follows:

    • When this setting is set to true, the extract file size will increase, affecting the overall disk space.

    • Extracts with materialized calculations take a longer time to refresh than extracts without materialized calculations.

    This setting only affects extracts that have not yet upgraded to .hyper. Extracts already upgraded to .hyper before turning on this setting will not have the calculations materialized. This setting will also not affect workbooks and extracts published from Tableau Desktop, or any new extract refreshes published to Tableau Server that do not use the Compute Calculations Now option.

    Note: This setting is only available in 10.5.3 or later.

  7. Enable extract refresh schedules.

Scenario: You upgraded your Tableau Server a while ago and you are experiencing slow response times. It is not practical for you to roll back using the backup you made prior to upgrade because your workbooks have changed since the upgrade, and the extracts have been upgraded to .hyper format.

If you fall under this scenario, and you find that your workbooks require materialized calculations, turning on the optimization setting on refresh will not work for you as this setting only works when upgrading from .tde to .hyper. You will need to test your workbooks individually for performance issues, and optimize them manually and republish to Tableau Server.

  1. If you see high memory and CPU consumption by VizQL Server when viewing workbooks with extracts, in addition to slower workbook response times, then you can enable the following setting on Tableau Server to help prevent the VizQL process from consuming the memory resources on the machine that might result in critical server issues. This setting checks the number of query nodes required for Tableau to generate the workbook and displays an error when the set limit is exceeded:.

    Use TSM CLI to run the following commands:

    tsm configuration set –k native_api.node_limit_checker_pre_rewrite_disable -v false

    tsm pending-changes apply

    Note: While enabling this setting improves the reliability and stability of Tableau Server, you may see errors on a very small percentage of workbooks when you enable this setting. For example, the Tableau team saw errors on 0.01% of the workbooks with this setting enabled on Tableau Online.

  2. Test the workbooks by viewing or interacting with them. Look for workbooks where you might see an error message that says something like: "Logical Query tree has 2348182 nodes, maximum number allowed is 1000000....".

  3. Use Tableau Desktop to troubleshoot the workbooks that you identified in step 2. Run this command to enable the node limit check in your Tableau Desktop:

    tableau.exe -DNodeLimitCheckerPreRewriteDisable=false

    Download and open the workbooks that displayed the error message using Tableau Desktop. Try optimizing the performance of workbooks using methods described in the Best Practices for Creating Calculations in Tableau topic and publish them to Tableau Server. If you are still seeing performance issues, continue to the next step.

  4. Use the Compute Now option to materialize calculations in your extract.