---
schema_version: "1"
id: 60ee66799cde4e4aae72803050fe149e46dfb26b76f4303926a6d958a0be459c
title: Performance Recommendations for Semantic Models
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/c360_a_sl_performance_recommendations_overview.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.c360_a_sl_performance_recommendations_overview.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 974bc1b2f2ea1652795ddaa4ea63954878f88c0e2c7ca8d6b6cfbd84f76fda98
description: A scan suggests cardinality and Match Case Insensitivity changes that speed semantic model queries. Model Health shows which recommendations remain open.
products:
  - Data 360
release: "264"
---
# Performance Recommendations for Semantic Models

A scan suggests cardinality and Match Case Insensitivity changes that speed semantic model queries. Model Health shows which recommendations remain open.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small "><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><a href="https://help.salesforce.com/s/articleView?id=analytics.tua_editions.htm&amp;language=en_US" target="_blank">View supported editions.</a></td></tr></tbody></table>

## What a Scan Checks

Performance recommendations in Tableau Next suggest cardinality and match-case changes that speed semantic model queries and lower compute cost. On the **Semantic Layer** tab, open **Optimize Model** to scan the model. The scan reads relationship metadata and samples the columns that join the tables. Apply, review, or dismiss each recommendation.

The **Performance** tab lists two recommendation types. Apply the recommendations that fit your data and how the model is likely to change, and dismiss the rest.

  
| Performance Recommendation | What It Improves | How the Scan Detects It |
| --- | --- | --- |
| Cardinality | Query run time. The query engine skips deduplication when the cardinality is one to one or many to one. | The relationship's cardinality, from relationship metadata, a cardinality query, and a scan of the keys that join the tables. |
| Match Case Insensitivity | Query run time. The join skips a case-sensitive string comparison. | The **Match Case Insensitivity** setting on the join. The scan checks whether the join fields contain both lowercase and uppercase values. |

Cardinality tells the query engine how rows in two related objects correspond: one to one, one to many, or many to many. A many-to-many cardinality adds deduplication to every query, and the query runs slower. When the data is one to one or many to one, that cardinality lets the engine skip the deduplication. Setting cardinality to the suggested value can speed queries by up to 50%.

A case-sensitive text join requires an exact match, including capitalization, and that comparison slows the query. When the joined values use the same capitalization, turn on **Match Case Insensitivity**. The join becomes case-insensitive and runs faster. Standardizing those joins can avoid full table scans and improve query run time by up to 90%.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-semantics-264-0-0-production-enus/f7c99ab1-3439-4722-b925-34cb47455d89/images/icon_note.png)

Note Recommendations reflect patterns in the model and data at scan time and can include a margin of error. Review each recommendation's details, and use your knowledge of the data before you apply a recommendation.

## Recommendation Cards and Model Health

After the scan, the **Performance** tab shows one card for each recommendation type: Cardinality and Match Case Insensitivity. Each card includes the recommendation name, a short summary of what the scan found, and **Review**. **Review** opens the list of relationships for that type.

When a recommendation type has no issues, the card shows a cleared state, such as "No cardinality issues were found in relationships." When the model has no performance issues, both cards show the cleared state.

The panel also shows a **Model Health** rating, such as Moderate or Weak. Model Health reflects how many objects have outstanding performance recommendations relative to the total number of objects. Each recommendation contributes to the rating. Resolving recommendations improves the rating.

Opening **Optimize Model** in a new session starts a scan. Reopening the panel in the same session shows the existing results. Each scan evaluates the model as it exists at the scan time. To refresh the recommendations after you edit the model, open **Optimize Model** again. During a scan, **Model Health** shows a scanning badge with the message Scanning the semantic model. Model Health reflects how many objects have outstanding performance recommendations relative to the total number of objects. Resolving recommendations improves the rating.

A scan usually takes a few minutes. See [Scan a Semantic Model for Performance Recommendations](https://help.salesforce.com/s/articleView?id=analytics.c360_sl_scan_model_perf_recommendations.htm&release=264.0.0&type=5 "Open Optimize Model to scan join settings on a semantic model. The scan returns a Model Health rating and a card for each recommendation type.") to generate a **Model Health** rating and the recommendation cards. See [Apply Cardinality Recommendations to Your Semantic Model](https://help.salesforce.com/s/articleView?id=analytics.C360_sl_perf_reco_apply_cardinality_recommendations.htm&release=264.0.0&type=5 "Set a relationship's cardinality so queries skip extra deduplication. Review each suggestion, and then apply or dismiss it for this session.") and [Apply Match Case Insensitivity Recommendations to a Semantic Model](https://help.salesforce.com/s/articleView?id=analytics.c360_sl_perf_reco_apply_match_case_insensitivity_rec.htm&release=264.0.0&type=5 "Case-sensitive text joins slow queries when the values share one capitalization. Review each suggestion, and then apply or dismiss it for this session.") to review and apply the recommendations.

## Limitations

- Recommendations appear after you scan the model. Opening **Optimize Model** in a new session starts the scan.
- Each scan evaluates the model and data as they exist at the scan time. Tableau Next monitors the model only while a scan runs.
- When joined values later differ only by capitalization, turn off **Match Case Insensitivity** on the relationship. Tableau Next doesn't recommend that change.
- To undo an applied recommendation, change the relationship setting yourself.
- Performance recommendations skip small tables.
- For hybrid relationships, set up acceleration in the Tableau Next data acceleration experience.

- **[Scan a Semantic Model for Performance Recommendations](https://help.salesforce.com/s/articleView?id=analytics.c360_sl_scan_model_perf_recommendations.htm&release=264.0.0&type=5)**  
    Open Optimize Model to scan join settings on a semantic model. The scan returns a Model Health rating and a card for each recommendation type.
- **[Apply Cardinality Recommendations to Your Semantic Model](https://help.salesforce.com/s/articleView?id=analytics.C360_sl_perf_reco_apply_cardinality_recommendations.htm&release=264.0.0&type=5)**  
    Set a relationship's cardinality so queries skip extra deduplication. Review each suggestion, and then apply or dismiss it for this session.
- **[Apply Match Case Insensitivity Recommendations to a Semantic Model](https://help.salesforce.com/s/articleView?id=analytics.c360_sl_perf_reco_apply_match_case_insensitivity_rec.htm&release=264.0.0&type=5)**  
    Case-sensitive text joins slow queries when the values share one capitalization. Review each suggestion, and then apply or dismiss it for this session.

#### See Also

- [_Salesforce Help_: Semantic Model Builder: Smart Canvas](https://help.salesforce.com/s/articleView?id=analytics.c360_a_sl_enhanced_canvas_semantic_builder.htm&language=en_US)