DP-900 Describe an analytics workload on Azure Practice Question
A company uses Azure Synapse Analytics dedicated SQL pool for a large data warehouse. The fact table contains billions of rows and is hash-distributed on ProductID. Frequent queries join this fact table with a small Store dimension table (10,000 rows) and a medium-sized Product dimension table (500,000 rows). The queries aggregate sales by store and product for recent months, but run slowly due to data movement during joins. Which design change will most reduce data movement and improve query performance?
⚠ Common exam trap
Candidates often think changing the distribution key or adding an index will solve data movement, but they overlook that replicating the small dimension table is the most direct and cost-effective way to eliminate shuffling for frequent joins.
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
✓
Replicate the Store dimension table
Replicating the small Store dimension table (10,000 rows) across all compute nodes eliminates the need to shuffle data during joins with the fact table. In Azure Synapse dedicated SQL pool, replicated tables store a full copy on each distribution, so queries that join a replicated table with a distributed fact table avoid costly data movement, significantly improving performance for frequent aggregation queries.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Replicate the Store dimension table
Why this is correct
Replicating the Store dimension table is the correct approach because a replicated table is physically copied to every distribution in the dedicated SQL pool. When the fact table joins with the Store table on StoreID, the join is performed locally on each distribution, completely eliminating data movement between distributions. This is ideal for small dimension tables (under 1 GB) that are frequently used in joins and rarely updated, making query performance significantly faster.
- ✗
Change the distribution of the fact table to round-robin
Why it's wrong here
Changing the fact table distribution to round-robin is incorrect because round-robin spreads rows arbitrarily across distributions without any key-based colocation. Every subsequent join—whether with Store, Product, or any other table—will require the engine to reshuffle and redistribute data across all distributions, greatly increasing data movement and slowing down queries. Round-robin is only suitable for staging or loading tables, not for fact tables that are heavily joined in star schema queries.
- ✗
Change the distribution key of the fact table to StoreID
Why it's wrong here
Changing the distribution key of the fact table to StoreID is not the right fix, because hash distributing on StoreID would only colocate the fact table with the Store dimension on that specific key. However, the fact table also joins with the Product dimension; if Product is not replicated or distributed on ProductID, the Product join will still cause data movement and performance degradation. Additionally, rebuilding the table to change the distribution key requires a costly CTAS operation and a full table scan, making this option both disruptive and insufficient for solving the broader join problem.
- ✗
Add a nonclustered index on the StoreID column in the fact table
Why it's wrong here
Adding a nonclustered index on StoreID in the fact table will not address the root cause of slow joins, because in a dedicated SQL pool, query performance is dominated by data distribution and movement, not by traditional row-based indexing. The default clustered columnstore index is already optimized for large fact tables, and a nonclustered index only helps point lookups or small row retrievals—it does not change how rows are distributed across the MPP nodes. Since the join slowness stems from data shuffling during join execution, the index provides no benefit and leaves the core performance issue unresolved.
Go deeper
Related to this question
Learn chapter
Data Roles and Core Concepts
Key term
Data warehouse
A data warehouse is a central repository that stores large amounts of structured data from multiple sources, optimized for querying and analysis rather than day-to-day transactions.
Key term
Azure Synapse Analytics
Azure Synapse Analytics is a cloud-based data integration, warehousing, and analytics service that brings together big data and data warehouse capabilities under one platform.
About these practice questions
This DP-900 question is part of Courseiva's 820-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This DP-900 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 DP-900 exam.