PL-300 practice exam
Twenty mixed questions across all four PL-300 skill areas.
You need to remove 30 unused columns from a large table. Where is the best place?
- A DAX calculated table
- Power Query, before load
- Hide them in the model
- Filter them in each visual
Answer: Power Query, before load — Removing in Power Query means they never enter the model, saving refresh time and memory. Hiding still stores them.
Which storage mode should a small dimension use when joined to a DirectQuery fact table?
- Import
- DirectQuery
- Dual
- Live
Answer: Dual — Dual serves from memory for Import-only queries and from source when joined to DirectQuery facts.
A measure must show percent of the total currently selected in slicers. Which function?
- ALL
- ALLSELECTED
- REMOVEFILTERS
- ALLEXCEPT
Answer: ALLSELECTED — ALLSELECTED respects slicers and page filters while clearing the visual's own filter.
Sales has OrderDate and ShipDate. You need revenue by ship date without duplicating the Date table.
- Set cross-filter to Both
- Use USERELATIONSHIP in CALCULATE
- Create a calculated column
- Use a many-to-many relationship
Answer: Use USERELATIONSHIP in CALCULATE — USERELATIONSHIP activates the inactive ShipDate relationship for that measure only.
Which is required for TOTALYTD to work correctly?
- DirectQuery mode
- A contiguous Date table marked as a date table
- A bidirectional relationship
- Premium capacity
Answer: A contiguous Date table marked as a date table — Time intelligence depends on a dedicated, gap-free date table covering complete years.
A user should edit reports but not manage app access. Assign which workspace role?
- Admin
- Member
- Contributor
- Viewer
Answer: Contributor — Contributor creates and edits content without publishing the app or managing permissions.
Which function should dynamic RLS use?
- USERNAME()
- USERPRINCIPALNAME()
- CUSTOMDATA()
- LOOKUPVALUE()
Answer: USERPRINCIPALNAME() — USERPRINCIPALNAME returns the UPN consistently across Desktop and Service.
You add an index column and folding stops. What is the consequence?
- Refresh fails
- Later steps are processed locally instead of at the source
- The column is dropped
- DirectQuery is disabled
Answer: Later steps are processed locally instead of at the source — Once folding breaks, remaining transformations run in the Power Query engine rather than as native SQL.
Which calculation should be a measure rather than a calculated column?
- A bucket label used in a slicer
- Total revenue shown in a card
- A concatenated key
- A flag used in a filter
Answer: Total revenue shown in a card — Values placed in the Values well should be measures; only slicing attributes justify a column.
What does KEEPFILTERS change about a CALCULATE filter argument?
- It removes it
- It makes it intersect with existing filters instead of replacing them
- It reverses direction
- It applies it at refresh
Answer: It makes it intersect with existing filters instead of replacing them — By default filter arguments replace; KEEPFILTERS intersects with the existing context.
Which source does NOT require an on-premises gateway?
- On-premises SQL Server
- A local Excel file on a network share
- Azure SQL Database
- On-premises SAP HANA
Answer: Azure SQL Database — Cloud sources such as Azure SQL are reachable by the Service directly.
Wide data has one column per month. What transformation makes it usable?
- Pivot
- Unpivot other columns
- Group by
- Merge
Answer: Unpivot other columns — Unpivoting converts month columns into attribute/value rows suited to a star schema.
How many scheduled refreshes per day does a Pro workspace allow?
- 4
- 8
- 24
- 48
Answer: 8 — Pro allows 8; Premium/Fabric capacity allows 48.
RANKX returns 1 for every row. What is missing?
- A DESC argument
- ALL() on the table argument
- A variable
- CALCULATE
Answer: ALL() on the table argument — Without ALL, each row ranks inside its own filter context.
You want a summary visual to open a detail page carrying the selected product. Use:
- Bookmark
- Drillthrough
- Sync slicer
- Tooltip page
Answer: Drillthrough — Drillthrough passes the selected context to a dedicated detail page.
What is the effect of Mark as Date Table?
- It sorts the table
- It enables correct time intelligence behaviour
- It compresses the table
- It hides the table
Answer: It enables correct time intelligence behaviour — It tells the engine which column is the date key so DAX time functions behave correctly.
A refresh fails silently and users see stale data. What should have been configured?
- Incremental refresh
- Failure notifications on the dataset
- A gateway cluster
- Dual storage mode
Answer: Failure notifications on the dataset — Refresh failure notifications surface the problem before users trust stale numbers.
Which pair correctly describes evaluation timing?
- Measures at refresh, columns at query time
- Measures at query time, columns at refresh
- Both at refresh
- Both at query time
Answer: Measures at query time, columns at refresh — Columns materialise at refresh; measures compute per visual cell at query time.
Which best describes a composite model?
- Two datasets in one workspace
- A model mixing Import and DirectQuery storage modes
- A model with two fact tables
- A dataset with RLS enabled
Answer: A model mixing Import and DirectQuery storage modes — Composite models combine storage modes, typically DirectQuery facts with Dual dimensions.
You test RLS and see all rows. Most likely reason?
- RLS requires Premium
- You are a workspace Admin or Member
- The role has no DAX filter
- DirectQuery blocks RLS
Answer: You are a workspace Admin or Member — Admins and Members bypass RLS on datasets they can edit; test as a Viewer or use Test as role.