How to Improve DirectQuery Performance for Large Tables in Power BI
You are connecting to an Azure SQL database using DirectQuery. The database has a large table with millions of rows. Users need to see aggregated data quickly. What should you implement to improve query performance?
Quick Answer
The answer is to create aggregations in Power BI on the large table. This is correct because aggregations allow the DirectQuery model to pre-summarize data at the source or within Power BI, so when users request aggregated data, the engine queries a much smaller, pre-calculated table instead of scanning millions of rows in Azure SQL. This dramatically reduces query latency and is a core technique for improving DirectQuery performance for large tables. On the PL-300 exam, this tests your understanding of hybrid table design and performance tuning for DirectQuery models—a common trap is thinking that indexing the source database alone is sufficient, but the exam emphasizes that Power BI aggregations work with the source to offload heavy summarization. Remember the memory tip: “Aggregate first, query last”—always build aggregations on large tables before expecting fast aggregated results.
⚠ Common exam trap
Many exam-takers confuse database-side optimizations (like indexes) with Power BI-side optimizations (like aggregations), leading them to choose Option D, but the question explicitly asks what you should implement in Power BI, not in the database.
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 aggregations in Power BI on the large table.
Creating aggregations in Power BI on the large table allows the DirectQuery model to pre-aggregate data at the source or in Power BI, reducing the volume of data queried and improving response times for aggregated results. This is a key performance optimization for DirectQuery models with large tables, as it avoids scanning millions of rows for every query.
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 aggregations in Power BI on the large table.
Why this is correct
Aggregations reduce the amount of data queried from the source.
- ✗
Increase the memory limit of the Power BI Desktop.
Why it's wrong here
Memory limit does not affect DirectQuery performance.
- ✗
Use a composite model with a smaller imported table.
Why it's wrong here
Composite models are for combining import and DirectQuery, not a direct performance fix.
- ✗
Add indexes to the database table.
Why it's wrong here
Indexing is not controlled from Power BI.
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 →
Same concept, more angles
2 more ways 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 have a Power BI dataset that uses DirectQuery to an Azure SQL Database. Users complain that reports take too long to load. You suspect that the database is overwhelmed by queries. What should you do to improve performance while keeping DirectQuery?
hard- ✓ A.Reduce the number of visuals per page and apply slicers to limit data.
- B.Increase the Power BI Premium capacity size.
- C.Create aggregations in the dataset.
- D.Change the storage mode to Import.
Why A: Reducing the number of visuals per page and applying slicers to limit data reduces the number of DAX queries sent to the Azure SQL Database via DirectQuery. Each visual generates at least one query, so fewer visuals mean fewer concurrent queries, and slicers add WHERE clauses that reduce the result set size, lowering the load on the database.
Variation 2. You have a Power BI dataset that uses DirectQuery to an Azure Synapse Analytics dedicated SQL pool. You need to improve query performance. Which THREE actions should you take?
hard- ✓ A.Create indexes on columns used in filters
- B.Normalize the data warehouse tables
- ✓ C.Create aggregated tables in the data source
- ✓ D.Use materialized views
- E.Switch the dataset to Import mode
Why A: Creating indexes on columns used in filters is correct because DirectQuery translates Power BI filter operations into SQL queries against the Azure Synapse Analytics dedicated SQL pool. Indexes on those columns accelerate row-level filtering by reducing the number of pages scanned, directly improving query response times.
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.