PL-300 Model the data Practice Question
You are modeling data from an Azure SQL Database into Power BI. The source table 'Sales' contains 10 million rows. You need to ensure that the data model supports fast query performance for a report that shows sales by month and product category. The report uses a slicer for year. What is the best practice for improving performance?
⚠ Common exam trap
Many exam-takers confuse DirectQuery (option C) as a performance optimization for large data volumes, but in reality, DirectQuery offloads processing to the source and can be slower for aggregated reports, whereas pre-aggregating in Power BI (option D) is the correct approach for fast in-memory query 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 an aggregate table in Power BI that pre-aggregates sales by month and product category.
Creating an aggregate table in Power BI that pre-aggregates sales by month and product category drastically reduces the number of rows the report must scan, from 10 million to a much smaller set of aggregated rows. This enables fast query performance for the slicer and visual-level filters, as Power BI can leverage the aggregate table via its aggregation feature, which automatically redirects queries to the pre-summarized data when possible.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Disable the auto-date/time feature.
Why it's wrong here
Disabling the auto-date/time feature in Power BI removes the automatic date hierarchies that Power BI creates for each date column, which reduces model size and can shorten refresh times by eliminating hidden tables. However, this option only trims metadata and does not alter the granularity of the underlying fact table, so large transaction-level tables still require full scans during report rendering. Without a pre-aggregated summary table, report queries still process millions of rows, and the performance bottleneck remains unresolved.
- ✗
Increase the data load frequency to every 15 minutes.
Why it's wrong here
Increasing the data load frequency to every 15 minutes ensures the dataset is refreshed more often, which can improve data freshness but has no impact on the computational cost of querying a large fact table. Each refresh operation consumes system resources and may even slow down the underlying source database due to repeated extraction, while report queries continue to aggregate the full transactional granularity on the fly. Query performance in Power BI is determined by the structure and size of the data model, not by how recently the data was loaded, so this change does not address the need for a pre-aggregated sales table at the month and product category level.
- ✗
Use DirectQuery mode to query the source database directly.
Why it's wrong here
Using DirectQuery mode to query the Azure SQL database directly sends every report visual's DAX query to the source system as T-SQL, which means report performance is entirely dependent on the database's indexing, concurrency, and network latency. Without an aggregation layer, DirectQuery must aggregate potentially millions of sales rows in real time for each filter or slicer interaction, often causing slower response times than an imported, in-memory model that uses efficient columnar compression. Moreover, DirectQuery bypasses Power BI's ability to cache aggregated results, so even if the source is optimized, it cannot match the performance of a dedicated aggregate table designed for the report's common grain.
- ✓
Create an aggregate table in Power BI that pre-aggregates sales by month and product category.
Why this is correct
Creating an aggregate table in Power BI that pre-aggregates sales by month and product category is the correct approach because it reduces the fact table to a much coarser grain, shrinking the number of rows that report queries must scan. By configuring this aggregate table as an aggregation group in the model, Power BI can automatically route high-level visual queries to the small summary table while reserving the detailed fact table for drill-down operations. This leverages the storage engine's in-memory columnar compression and accelerates time-intelligence calculations such as year-over-year month comparisons, directly addressing the performance bottleneck caused by large transaction-level data.
Go deeper
Related to this question
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 →
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.