Reinforce PL-300 concepts with active-recall study cards covering all 5 blueprint domains. Each card shows the question on the front and the correct answer with a full explanation on the back.
Flashcards work through active recall — the process of retrieving information from memory rather than passively re-reading it. Research consistently shows that active recall produces stronger, longer-lasting memory than re-reading study guides. For PL-300 preparation, this means flashcards are one of the highest-return study tools available.
Attempt recall first
Read the PL-300 question on each card, pause, and attempt to formulate the answer in your own words before revealing. This retrieval attempt — even if wrong — dramatically strengthens memory compared to immediately reading the answer.
Review wrong cards again
When you get a card wrong, note it and add it back to your review pile. Spaced repetition — seeing difficult cards more frequently — is the mechanism that makes flashcard study far more efficient than linear reading.
Study by domain
Group your PL-300 flashcard sessions by domain for the first 3–4 weeks. Master one domain before moving to the next. In the final week, shuffle all cards together to test cross-domain recall — which is what the real PL-300 exam requires.
Short sessions beat marathon reviews
20–30 flashcard cards per session, done daily, produces better retention than a single 200-card marathon session. Five short daily sessions per week over 4 weeks gives you over 400 total card reviews — enough to reliably pass PL-300.
Sample cards from the PL-300 flashcard bank. Read the question, think of the answer, then read the explanation below.
A company has a Power BI dataset that imports data from a SQL Server database. The dataset includes a table with 10 million rows. The data model uses a single table and does not include any calculated columns or measures. The report users report that the dataset refresh takes too long. Which action should you take to improve refresh performance?
Remove unused columns from the table in Power Query.
Removing unused columns from the table in Power Query reduces the amount of data loaded into the Power BI dataset. With 10 million rows, every unnecessary column adds significant I/O and memory overhead during refresh. This directly improves refresh performance by minimizing the data volume transferred and processed.
You are preparing data for a Power BI report. You have a table that contains a 'ProductID' column with some null values. You need to ensure that the 'ProductID' column does not contain any null values in the data model. Which Power Query transformation should you apply?
Replace Values -> Replace null with a default value
Replacing null values with a default value directly ensures that the ProductID column has no nulls in the data model. This transformation can be applied to a specific column using 'Replace Values' in Power Query, where you replace null with a chosen default. Options A and B do not address null values. Option C, 'Remove Blank Rows', only removes rows where all columns are blank, so rows with data in other columns but null ProductID remain, failing the requirement.
You are working on a Power BI project for a marketing department. You have a CSV file with customer survey responses. The file contains columns: CustomerID, SurveyDate, Response (text with ratings from 1 to 5), Comments (free text). The file is 10 MB. You need to load the data into Power BI and create a measure that calculates the average rating. However, when you load the file, you notice that the Response column is imported as text instead of whole number. Also, there are some rows with missing values in the Response column. You need to ensure the data is correctly typed and handle missing values appropriately. What is the best approach?
Change the data type of Response to whole number in Power Query, then filter out or replace null values.
Power Query is the designated tool for data type transformations and null handling during the load phase. Changing the Response column's data type to Whole Number in Power Query automatically converts valid text numbers and flags errors, while filtering out or replacing null values ensures clean data before the data model is built. This approach follows the best practice of performing data cleansing in Power Query rather than in DAX, which would add unnecessary overhead and complexity.
You have a Power BI dataset that includes a date table created using CALENDAR(). You need to ensure that the date table always covers the full range of dates present in the fact table, even after new data is loaded. What should you do?
Create the date table using CALENDAR(MIN('Fact'[Date]), MAX('Fact'[Date]))
Using `CALENDAR(MIN('Fact'[Date]), MAX('Fact'[Date]))` dynamically computes the date range from the fact table's actual data. This ensures that when new data is loaded with dates outside the previous range, the date table automatically expands to cover the full range, maintaining referential integrity for time intelligence calculations.
Your Power BI dataset uses a SQL view that joins multiple tables. You notice that some columns have null values where you expect data. You suspect the view definition has a bug. How can you verify the view's output in Power Query?
Create a new query that runs the view's SQL directly against the source
Creating a new query that runs the view's SQL directly against the source in Power Query allows you to isolate and execute the exact SQL statement, bypassing any transformations or folding issues. This lets you compare the raw output from the source with the view's expected results, directly verifying if the view definition itself contains a bug. It is the most straightforward method to confirm whether the null values originate from the view or from subsequent Power Query steps.
You manage a Power BI workspace that contains a dataset refreshed daily from an on-premises SQL Server. Users report that the report shows data from two days ago. You verify that the scheduled refresh ran successfully this morning. What is the most likely cause?
The on-premises data source is misconfigured, causing the refresh to load data from an outdated source.
The most likely cause is that the on-premises data source is misconfigured (e.g., pointing to a stale backup or snapshot). This results in the scheduled refresh loading data from an outdated source, making it appear successful yet yielding old data. The gateway does not cache data; the issue lies in the data source reference.
A company has a Power BI dataset that contains a date table with columns: Date, Year, Month, Quarter, Day. The data model also includes a sales fact table with a SalesDate column. To enable time intelligence functions like TOTALYTD, what is the minimum requirement for the relationship between these tables?
Create a one-to-many relationship from the date table to the sales table and mark the date table as a date table.
Time intelligence functions like TOTALYTD require a properly configured date table marked as a date table, with a one-to-many relationship from the date table to the sales fact table. This ensures that the date table provides a continuous, unique set of dates that Power BI can use for time-based calculations, and marking it as a date table enables the engine to recognize it as the primary date dimension for time intelligence.
A Power BI developer needs to model data from two sources: an on-premises SQL Server database and a cloud-based Salesforce instance. The developer wants to create a star schema in Power BI. Which approach should the developer use to combine the data?
Use Power Query in Power BI Desktop to import both sources and merge/append queries as needed.
Power Query in Power BI Desktop is the appropriate tool to import data from both an on-premises SQL Server database and a cloud-based Salesforce instance, allowing the developer to merge or append queries as needed to shape the data into a star schema. This approach supports combining disparate sources into a single import model, which is essential for creating a star schema with fact and dimension tables. Using Power Query ensures that all data is loaded into memory, enabling fast query performance and full modeling capabilities.
A Power BI developer has a fact table that contains sales data at the transaction level. The table includes columns: TransactionID, ProductID, CustomerID, DateKey, Quantity, UnitPrice, Discount, and SalesAmount. The developer wants to create a measure for total sales after discount. Which approach is best for performance and accuracy?
Add a calculated column in Power Query: NetAmount = Quantity * UnitPrice - Discount, then create a measure: SUM(Sales[NetAmount])
It performs the net amount calculation at the row level in Power Query (M), which is computed during data refresh and stored in the table. This avoids runtime row-by-row iteration in DAX, making the measure SUM(Sales[NetAmount]) a simple, highly efficient aggregation. It ensures both performance and accuracy, as the discount is applied per transaction before aggregation.
A company has a Power BI semantic model that uses DirectQuery to a SQL Server database. The model contains a large fact table with sales data. Users report that reports using this model are slow. Which design change would most improve query performance?
Remove unnecessary columns from the fact table.
Removing unnecessary columns from the fact table reduces the amount of data that must be transferred from SQL Server to Power BI for each query. In DirectQuery mode, every report interaction sends a query to the source database, so fewer columns mean smaller result sets and faster query execution. This directly addresses the performance bottleneck caused by a large fact table without changing the underlying storage mode.
A data analyst is designing a star schema in Power BI. The model includes a table named 'Orders' with columns: OrderID, CustomerID, OrderDate, ProductID, Quantity, and SalesAmount. Which column should NOT be included in the fact table to maintain a proper star schema?
OrderID
In a proper star schema, fact tables should contain quantitative measures and foreign keys to dimension tables. Columns like CustomerID and ProductID serve as foreign keys linking to dimension tables, so they should remain in the fact table. OrderID is a natural key that typically belongs in an Order dimension table; the fact table should use a surrogate OrderKey instead. Including OrderID directly would duplicate dimensional data and reduce modeling flexibility.
A company wants to create a Power BI report that shows sales performance by region. The data contains a table 'Sales' with columns: Date, Amount, RegionID, and ProductID. They also have a 'Regions' table with RegionID and RegionName. They want to display a matrix visual with RegionName on rows and Year on columns, with the sum of Amount as values. However, the report displays only 'RegionID' instead of 'RegionName'. What is the most likely cause?
There is no active relationship between the Sales and Regions tables.
If there is no active relationship between the Sales and Regions tables, Power BI cannot use the RegionName from the Regions table to filter or group the Sales data. Instead, it defaults to displaying the RegionID from the Sales table, which is the only related field available in the visual. An active relationship must exist between the two tables on the RegionID columns for RegionName to appear in the matrix.
A Power BI report includes a bar chart showing total sales by product category. The report designer wants to add a trend line to the chart to show the overall sales trend over time. Which type of visual should be used instead?
Line chart
A line chart is the correct visual to show a trend over time because it plots data points connected by straight lines, making it easy to see the overall direction and pattern of total sales across a continuous time axis. Bar charts, including stacked variants, are designed for comparing discrete categories, not for displaying continuous trends.
A Power BI report contains a table visual that displays employee names and their total sales. The data model includes an Employee table with columns: EmployeeID, Name, Department, and HireDate. The Sales table has columns: SaleID, EmployeeID, Amount, and SaleDate. The relationship between Employee and Sales is one-to-many. The user wants to see only employees who have made at least one sale. However, the table shows all employees, including those with no sales (blank Amount). What is the most likely reason?
There is no visual-level filter to exclude blank values.
The table visual is showing all employees due to the absence of a visual-level filter to exclude blank or zero sales amounts. In Power BI, a one-to-many relationship between Employee and Sales means that employees without sales will still appear in the visual unless explicitly filtered out, as the relationship does not automatically suppress rows from the 'one' side when there are no matching rows on the 'many' side.
A data analyst creates a Power BI report that uses a date table with a continuous date range. They want to calculate the running total of sales over the last 12 months, ending on the last date in the current filter context. Which DAX expression should they use?
CALCULATE(SUM(Sales[Amount]), DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -12, MONTH))
DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -12, MONTH) returns a contiguous set of dates from 12 months before the last date in the current filter context up to that last date, providing an exact 12-month window. This function handles month boundaries correctly and is the standard way to calculate rolling 12-month totals in DAX. Option A uses 365 days, which can be imprecise due to leap years.
You are a Power BI administrator. A user reports that their scheduled data refresh fails with error 'The data source credentials are no longer valid.' The dataset uses a SQL Server database with Windows authentication. What should you do first to resolve the issue?
Ask the user to update the data source credentials in the Power BI service dataset settings.
The error 'The data source credentials are no longer valid' typically occurs when the password has changed or expired. The user can update the credentials in the dataset settings in the Power BI service. Option A is incorrect because the on-premises data gateway is not the issue; a reinstall is unnecessary. Option B is incorrect because reassigning the dataset to a different Premium capacity does not address credential validity. Option C is incorrect because using 'Impersonate the authenticated user' still requires valid credentials and does not fix the problem.
You have a Power BI workspace that contains a report connected to an Azure Analysis Services (AAS) model. The data source uses Single Sign-On (SSO) with Microsoft Entra ID. When users access the report, they see an error that the data cannot be refreshed. What is the most likely cause?
The dataset is configured in Import mode.
The most likely cause is that the dataset is configured in Import mode. Single Sign-On (SSO) with Microsoft Entra ID is only supported when the dataset uses DirectQuery or Live Connection mode. Import mode requires stored credentials and does not pass the user's identity to the data source. Option A is incorrect because RLS does not affect data refresh connectivity. Option B is incorrect because stored credentials are not used when SSO is enabled. Option C is incorrect because SSO uses the user's identity, not a service principal.
Your organization uses Microsoft Purview Information Protection to label sensitive data in Power BI datasets. You need to ensure that when a report is exported to Excel, the sensitivity label is automatically applied. What should you configure?
Ensure the dataset has a sensitivity label and that the export inherits the label.
When a Power BI dataset has a sensitivity label applied via Microsoft Purview Information Protection, any downstream exports (such as reports exported to Excel) automatically inherit that label. This inheritance ensures consistent protection across all outputs. Option D is incorrect because the Power BI admin portal setting 'Apply sensitivity labels to exported data' is used to apply labels when the data source does not have a label, but it does not override automatic inheritance from a labeled dataset. Option B is incorrect because DLP policies in Microsoft Purview monitor and protect data, but they do not automatically apply sensitivity labels to exports. Option C is incorrect because setting a default sensitivity label on a report is not a feature; sensitivity labels are inherited from the dataset, not configured per report.
The PL-300 flashcard bank covers all 5 official blueprint domains published by Microsoft. Cards are distributed proportionally, so domains with higher exam weight have more cards.
Domain Coverage
Prepare the data
Deploy and maintain assets
Model the data
Visualize and analyze the data
Manage and secure Power BI
Both flashcards and practice questions are evidence-based study tools. The difference is in what they train:
Flashcards — concept retention
Best for memorising definitions, acronyms, protocol behaviours, command syntax, and conceptual distinctions. Use flashcards to build the foundational vocabulary that PL-300 questions assume you know.
Best in: weeks 1–3
Practice tests — application
Best for applying concepts to realistic scenarios, eliminating distractors, and building exam stamina.PL-300 questions test scenario reasoning — not just recall — so practice tests are essential.
Best in: weeks 3–6
The most effective PL-300 study plan combines both: use flashcards for the first 2–3 weeks to build conceptual foundations, then shift to practice tests and mock exams in the final 2–3 weeks to apply and benchmark that knowledge. Most candidates who pass on their first attempt use both tools.
Yes. Courseiva provides free PL-300 flashcards across all official exam domains. Every card includes the correct answer and a full explanation of why it is right and why the distractors are wrong. The platform also includes topic-based practice, mock exams, and readiness tracking — no account required.
Courseiva has 217+ original PL-300 flashcards across all 5 exam blueprint domains. New cards are added regularly as the question bank grows. All cards are written by certified engineers against the official Microsoft exam objectives.
Courseiva flashcards are purpose-built for IT certification exams. Unlike generic flashcard platforms where content quality varies, every Courseiva card is mapped to the official PL-300 exam blueprint, written by engineers who hold the certification, and includes a full explanation of the correct answer and why the distractors are wrong. This explanation quality is what separates genuine learning from rote memorisation.
Courseiva is a web platform — an internet connection is required. For offline study, we recommend creating free Courseiva account, using the platform in your browser, and using your device's offline capabilities if your browser supports offline web apps.
Save your results, see which domains need more work, and get spaced repetition recommendations — all free.
Sign Up FreeFree forever · Every certification included