Forum Discussion

alexandra-pbi's avatar
alexandra-pbi
Frequent Visitor
9 months ago
Solved

Performance Issue: DirectQuery Semantic Model in Fabric with Many-to-Many Relationship

Hello community experts,   We’re currently facing a performance challenge with a semantic model in DirectQuery mode deployed in Microsoft Fabric (capacity F128). The data source is a Microsoft Ware...
  • v-tejrama's avatar
    v-tejrama
    9 months ago

    Hi alexandra-pbi ,

     

    Thanks for clarifying. The relationship setup you described, with a distinct business ID table above the SCD dimension and fact table, doesn’t change query behavior by itself. Power BI will only use that table if it’s the actual source of the filter context. If filters come from fields in the SCD dimension, like card type or product, the engine still sees multiple rows per business ID, which leads to an ambiguous filter path. In those cases, Power BI defaults to enumerating values instead of using an inner join, even if a distinct ID table is present.

    This explains why your test showed the same results. Unless filters pass through the distinct ID table or the model ensures a single, clear row per business ID before reaching the fact table, Power BI will keep generating large IN lists. The bridge table doesn’t automatically redirect those filters or resolve the ambiguity from the Type 2 dimension.

    To consistently achieve inner join pushdown, the model usually needs either a mapping table that links business IDs to the surrogate keys in the fact table or a version of the card dimension where each business ID is unique. These options provide a straightforward filter path and prevent the IN clause expansion.

     
    Best Regards,
    Tejaswi.
    Community Support