Courseiva
Model the datamediumMultiple ChoiceObjective-mapped

One-to-Many Relationships in Power BI: Performance Best Practices

You are designing a Power BI data model that includes a table named Sales with 10 million rows. You need to create a relationship between Sales and a Product dimension table. The Product table has 10,000 rows. Which configuration will provide the best query performance?

Quick Answer

The answer is to create a one-to-many relationship from Product to Sales. This configuration is correct because it establishes a standard star schema, where the smaller Product dimension table (10,000 rows) filters the larger Sales fact table (10 million rows) efficiently. Power BI’s VertiPaq engine leverages this one-to-many relationship to push filters from the “one” side to the “many” side, optimizing query performance through in-memory columnar compression and automatic aggregations. On the Microsoft Power BI Data Analyst PL-300 exam, this scenario tests your understanding of cardinality and direction in data modeling—a common trap is reversing the relationship or creating a many-to-many link, which degrades performance. Remember the memory tip: “One side filters, many side stores”—always point the relationship from the unique dimension to the repeating fact table for speed.

⚠ Common exam trap

A common mix-up: candidates confuse the direction of the relationship arrow, thinking the 'many' side should be the source, but Power BI requires the dimension table (unique values) to be on the 'one' side for correct filter propagation and optimal performance.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

Create a one-to-many relationship from Product to Sales

A one-to-many relationship from Product (the dimension table with unique values) to Sales (the fact table with many rows) is the standard star schema design. This configuration allows Power BI to use the smaller Product table to filter the larger Sales table efficiently, leveraging in-memory columnar storage and automatic aggregations for optimal query performance.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Create a many-to-one relationship from Sales to Product

    Why it's wrong here

    While functional, this direction is less intuitive and may cause filter propagation issues in complex models.

  • Create a one-to-many relationship from Product to Sales

    Why this is correct

    This is the standard cardinality for dimension-to-fact relationships, optimized for performance.

  • Do not create a relationship; use LOOKUPVALUE in measures

    Why it's wrong here

    Avoiding relationships would require manual lookups, which are slower and less maintainable.

  • Create a relationship with cross filter direction set to Both

    Why it's wrong here

    Setting cross filter to Both can degrade performance and create ambiguity.

About these practice questions

One of 217 original PL-300 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

1 more way this is tested on PL-300

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. You are reviewing the relationships in a Power BI data model as shown in the exhibit. The model has tables: Sales, Product, Customer, and Category. You need to evaluate the performance impact of the current configuration. Which relationship is most likely to cause performance issues?

hard
  • A.All relationships are equally efficient
  • B.The relationship between Sales and Customer
  • C.The relationship between Product and Category
  • D.The relationship between Sales and Product

Why C: The relationship between Product and Category is most likely to cause performance issues because it is a many-to-many relationship without a bridge table. In Power BI, many-to-many relationships require the engine to materialize cross-join-like intermediate tables in memory, increasing query complexity and reducing performance. This is especially problematic when filtering or aggregating across these tables, as the VertiPaq engine must resolve ambiguity by creating additional internal tables.

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This PL-300 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PL-300 exam.