This post is a part of the PL-300: Microsoft Power BI Data Analyst Exam Prep Hub; and this topic falls under these sections:
Model the data (25–30%)
--> Optimize model performance
--> Removing Unnecessary Rows and Columns
Note that there are 10 practice questions (with answers and explanations) at the end of each topic. Also, there are 2 practice tests with 60 questions each available on the hub below all the exam topics.
Optimizing model performance is a core responsibility of a Power BI Data Analyst and a recurring theme on the PL-300 exam. One of the most effective—and often overlooked—ways to improve performance is by removing unnecessary rows and columns from the data model. A lean model consumes less memory, refreshes faster, and delivers better query performance for reports and visuals.
Why This Topic Matters for PL-300
Power BI uses an in-memory columnar storage engine (VertiPaq). Every column and every row loaded into the model increases memory usage and impacts performance. The PL-300 exam expects candidates to understand:
- How excess data negatively affects model size and performance
- When and where to remove unneeded data
- Which tools and techniques to use to optimize the model efficiently
This topic directly supports real-world scalability and aligns with Microsoft’s recommended best practices.
Identifying Unnecessary Columns
Common Examples of Unnecessary Columns
- Surrogate keys not used in relationships
- Audit columns (CreatedDate, ModifiedBy, LoadTimestamp)
- Technical or system fields from source systems
- Duplicate descriptive columns (e.g., both CategoryName and CategoryDescription when only one is used)
- High-cardinality text columns not used in visuals, filters, or calculations
Why Columns Hurt Performance
- Each column increases model memory footprint
- High-cardinality columns compress poorly
- Unused columns still consume memory even if hidden
PL-300 Tip: Hidden columns still impact performance. Removing them is better than hiding them.
Identifying Unnecessary Rows
Common Examples of Unnecessary Rows
- Historical data not required for analysis (e.g., data older than 10 years)
- Test or placeholder records
- Inactive or obsolete entities (e.g., discontinued products)
- Duplicate records due to poor source filtering
Why Rows Hurt Performance
- More rows increase storage size and query scan time
- Large fact tables slow down DAX calculations
- Visuals must process more data than needed
Where to Remove Rows and Columns (Exam-Relevant)
Power Query (Preferred Approach)
Removing data before it reaches the model is the most effective strategy.
Best practices:
- Remove columns using Remove Columns
- Filter rows using Filter Rows
- Apply logic early in the query to enable query folding
Why Power Query Matters on the Exam
- Reduces data volume at refresh time
- Improves refresh speed and memory usage
- Often allows source systems to do the filtering
DAX (Less Preferred)
Using DAX to filter data (e.g., calculated tables or measures) happens after data is loaded, so it does not reduce model size.
PL-300 Rule of Thumb:
If your goal is performance optimization, remove data in Power Query—not DAX.
Star Schema and Performance Optimization
Unnecessary rows and columns often come from poor data modeling.
Optimization Best Practices
- Keep fact tables narrow (only numeric and key columns)
- Keep dimension tables descriptive, but minimal
- Avoid denormalized “wide” tables
- Remove columns not used in:
- Relationships
- Measures
- Visuals
- Filters or slicers
Tools to Help Identify Performance Issues
Model View
- Inspect table sizes and column usage
- Identify wide or bloated tables
Performance Analyzer
- Helps identify visuals impacted by large datasets
VertiPaq Analyzer (Advanced / Optional)
- Analyzes column cardinality and compression
- Not required to use, but understanding its purpose is helpful
Exam Scenarios to Expect
You may be asked to:
- Choose the best way to reduce model size
- Identify why a model is slow or large
- Select the correct optimization technique
- Decide where data should be removed (Power Query vs DAX)
Example phrasing:
“What should you do to reduce memory usage and improve report performance?”
Correct answer often involves:
- Removing unnecessary columns
- Filtering rows in Power Query
- Reducing cardinality
Key Takeaways for PL-300
- Smaller models perform better
- Remove unused columns and rows
- Prefer Power Query over DAX for data reduction
- Hidden columns still consume memory
- This is a foundational performance optimization skill tested on the exam
Practice Questions
Go to the Practice Exam Questions for this topic.
