The correct answer is that the filter on OrderQty > 10 should be included in the SQL query to reduce the amount of data transferred. This is because Power Query loads all source data into memory before applying its own transformations, so filtering later in the M code means unnecessary rows are still pulled across the network and stored in the Power BI data model. By pushing filters to SQL Server, you leverage the database engine’s processing power and minimize memory consumption and network latency—a core principle of query folding. On the PL-300 exam, this concept tests your understanding of performance optimization in data loading, often appearing as a trap where candidates overlook that a downstream Power Query filter can be folded upstream into the SQL query. A common memory tip is “fold early, fold often”—if a filter can be pushed to the source, do it there first to keep your data pipeline lean and fast.
PL-300 Prepare the data Practice Question
This PL-300 practice question tests your understanding of prepare the data. The scenario asks you to isolate a root cause — eliminate options that address a different problem before choosing. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
Exhibit
Refer to the exhibit.
```
let
Source = Sql.Database("server.database.windows.net", "AdventureWorks", [Query="SELECT * FROM Sales.SalesOrderDetail WHERE ModifiedDate > '2024-01-01'"]),
#"Filtered Rows" = Table.SelectRows(Source, each [OrderQty] > 10),
#"Grouped Rows" = Table.Group(#"Filtered Rows", {"ProductID"}, {{"TotalQty", each List.Sum([OrderQty]), type number}})
in
#"Grouped Rows"
```
You are reviewing a Power Query that imports data from SQL Server. The exhibit shows the M code. The SQL query filters records after a date, then Power Query filters rows with OrderQty > 10, and then groups by ProductID. What is a potential performance issue with this approach?
Refer to the exhibit.
```
let
Source = Sql.Database("server.database.windows.net", "AdventureWorks", [Query="SELECT * FROM Sales.SalesOrderDetail WHERE ModifiedDate > '2024-01-01'"]),
#"Filtered Rows" = Table.SelectRows(Source, each [OrderQty] > 10),
#"Grouped Rows" = Table.Group(#"Filtered Rows", {"ProductID"}, {{"TotalQty", each List.Sum([OrderQty]), type number}})
in
#"Grouped Rows"
```
A
The query will fail because the SQL query uses '>' with a string.
Why wrong: The date is a string literal, which is valid in SQL.
B
The SQL query should use a parameter for the date instead of a hardcoded value.
Why wrong: Hardcoding is not a performance issue, though it's less flexible.
C
The filter on OrderQty > 10 should be included in the SQL query to reduce the amount of data transferred.
Filtering in SQL reduces data load; currently, all rows after the date are loaded.
D
The grouping should be done in SQL to reduce data volume.
Why wrong: Grouping in SQL would also reduce data, but the current approach is valid; the main issue is the filter.
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
The filter on OrderQty > 10 should be included in the SQL query to reduce the amount of data transferred.
Option C is correct because pushing the `OrderQty > 10` filter into the SQL query reduces the amount of data transferred from SQL Server to Power Query. In Power Query, data is loaded into memory before transformations; filtering earlier in the source query minimizes memory usage and network latency, which is a key performance optimization in Power BI data loading.
Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
✗
The query will fail because the SQL query uses '>' with a string.
Why it's wrong here
The date is a string literal, which is valid in SQL.
✗
The SQL query should use a parameter for the date instead of a hardcoded value.
Why it's wrong here
Hardcoding is not a performance issue, though it's less flexible.
✓
The filter on OrderQty > 10 should be included in the SQL query to reduce the amount of data transferred.
Why this is correct
Filtering in SQL reduces data load; currently, all rows after the date are loaded.
Related concept
Read the scenario before looking for a memorised answer.
✗
The grouping should be done in SQL to reduce data volume.
Why it's wrong here
Grouping in SQL would also reduce data, but the current approach is valid; the main issue is the filter.
Common exam traps
Common exam trap: answer the scenario, not the keyword
The trap here is that candidates focus on the date filter or grouping as the main performance issue, but the most impactful optimization is moving the row-level filter (`OrderQty > 10`) into the SQL query to reduce data transfer, which is a classic 'query folding' concept in Power Query.
Detailed technical explanation
How to think about this question
Power Query uses query folding to push transformations back to the source when possible, but explicit filters applied after the SQL query (like `Table.SelectRows`) may not fold if the source query is already a native query. In this case, the `OrderQty > 10` filter is applied in Power Query, meaning all rows from the SQL result are transferred and then filtered in memory, which can be inefficient for large datasets. A real-world scenario: if the SQL query returns 10 million rows and only 100,000 have `OrderQty > 10`, the network transfer and memory load are 100x higher than necessary.
KKey Concepts to Remember
Read the scenario before looking for a memorised answer.
Find the constraint that changes the correct option.
Eliminate answers that are true in general but not in this case.
TExam Day Tips
→Watch for words such as best, first, most likely and least administrative effort.
→Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Real-world example
How this comes up in practice
A healthcare organisation deploys an application with a public-facing web tier and a private database tier. The database subnet has no public IP and only accepts connections from the web tier's security group. Questions like this test whether you can design cloud network isolation using VNets/VPCs, subnets, and security group rules.
What to study next
Got this wrong? Here's your next step.
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
Prepare the data — This question tests Prepare the data — Read the scenario before looking for a memorised answer..
What is the correct answer to this question?
The correct answer is: The filter on OrderQty > 10 should be included in the SQL query to reduce the amount of data transferred. — Option C is correct because pushing the `OrderQty > 10` filter into the SQL query reduces the amount of data transferred from SQL Server to Power Query. In Power Query, data is loaded into memory before transformations; filtering earlier in the source query minimizes memory usage and network latency, which is a key performance optimization in Power BI data loading.
What should I do if I get this PL-300 question wrong?
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
What is the key concept behind this question?
Read the scenario before looking for a memorised answer.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
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 troubleshooting a Power Query transformation that groups sales data by ProductID. The query runs slowly and you suspect the filter is being applied after loading all rows. What change would improve performance by pushing the filter to the source?
hard
A.Disable the 'Enable load' option for the SalesTable
B.Use CALCULATE in DAX to filter
C.Add a 'Table.Buffer' step after the filter
✓ D.Replace the first three lines with a native SQL query that includes the WHERE clause
Why D: Option D is correct because pushing filter logic to the source database via a native SQL query with a WHERE clause reduces the amount of data loaded into Power Query. This leverages query folding, which allows the source (e.g., SQL Server) to perform the filtering before data is transferred, significantly improving performance for large datasets.
Last reviewed: Jun 24, 2026
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
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.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.