How to Minimize Data Refresh Time Using Import Mode in Power BI
You are loading data from a SQL Server database into Power BI. You notice that the import takes a long time because the source table contains many rows. You only need a subset of rows based on a date filter. What should you do to improve performance?
⚠ Common exam trap
Test-takers frequently choose 'Remove unnecessary columns' (Option A) thinking it reduces data volume, but they overlook that row count reduction via query folding has a far greater impact on import performance than column reduction.
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
✓
Use a SQL query with a WHERE clause in the Power Query Editor.
Using a SQL query with a WHERE clause in Power Query Editor pushes the date filter down to the SQL Server database, reducing the amount of data transferred over the network and imported into Power BI. This query folding technique leverages the database engine's indexing and processing power, which is far more efficient than filtering after import. By retrieving only the necessary rows upfront, you minimize both network latency and memory consumption in Power BI.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Remove unnecessary columns in Power Query.
Why it's wrong here
Removing unnecessary columns in Power Query narrows the table by eliminating unneeded attributes, which reduces memory footprint and network transfer per row. However, it does nothing to reduce the number of rows imported from SQL Server, so if the bottleneck is high row volume, the full transaction set still traverses the network and lands in the data model. Column pruning is complementary to row filtering, not a substitute for pushing a WHERE clause down to the source.
- ✓
Use a SQL query with a WHERE clause in the Power Query Editor.
Why this is correct
Writing a SQL query with a WHERE clause directly in Power Query Editor is the most efficient approach because it implements query folding—SQL Server executes the filter and returns only the rows that satisfy the predicate. This minimizes data transfer, avoids loading irrelevant rows into Power Query memory, and speeds up both the initial load and subsequent refreshes. When the source is a relational database, a native SQL query with a filtered result set is a best practice for row-level reduction at the source.
- ✗
Load all data and then apply a filter in Power BI.
Why it's wrong here
Loading all data and then applying a filter in Power BI means Power Query first pulls every row from SQL Server, expands them in memory, and then discards the non-matching records during the load or within a visual-level filter. This unnecessarily consumes network bandwidth, slows down the initial load, and can exhaust memory on large tables. Unlike query folding, it defers filtering to a later stage, so the database does not benefit from predicates that could reduce the dataset early.
- ✗
Enable incremental refresh on the dataset.
Why it's wrong here
Incremental refresh is a dated data management strategy that uses RangeStart and RangeEnd parameters to partition a table, but it is designed for scheduled refresh scenarios where only new or changed rows are loaded in subsequent refreshes. It does not optimize the initial full load—in fact, the first refresh typically loads the entire dataset into the model. Without a corresponding filter in a query or Power Query step, enabling incremental refresh alone does not reduce the row count transferred during the initial data import from SQL Server.
Go deeper
Related to this question
About these practice questions
One of 524 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.