Materialize Calculations in Your Extracts
You can use the Compute Calculations Now option to materialize calculations in your extract. When calculations are materialized, certain calculations are computed in advance and its values stored in the extract. Depending on the complexity of the calculations used in your extract, this can potentially speed up future queries by allowing Tableau to compute certain calculations in advance. Tableau can then use the precomputed value rather than computing the value each time a query against a calculation is made.
If the formula for a calculation that Tableau has already materialized changes or the calculation is deleted from the data source, the materialized calculation is removed from the extract until you use the Compute Calculations Now option again.
When to materialize calculations
You should not use the Compute Calculations Now option for all your extracts. Instead, try this option only when the query performance of your extract is slow as a result of complex calculations, such as string manipulations and regular expressions.
To materialize calculations in your extract, do the following:
In Tableau Desktop, select the extract data source from the Data menu.
Select Extract > Compute Calculations Now.
If you need to retroactively materialize calculations in extracts that are already published to Tableau Online or Tableau Server, you have the following options:
You can download the extract, open the extract in Tableau Desktop, use the Compute Calculations Now option (as described above), and then republish the extract.
As a site administrator or data source owner, you can use tabcmd to refresh the published extract with the
--addcalculationsoption to materialize the calculations. For more information about the tabcmd command option, see refreshextracts in the Tableau Online Help or refreshextracts in the Tableau Server Help.
Note: Materializing calculations can increase the size of the extract.
Calculations that cannot be materialized
The following calculations cannot be materialized:
- Calculations that use unstable functions such as NOW() and TODAY()
- Calculations that use external functions such as RAWSQL and R
- Table calculations
- Level of detail (LOD) calculations