
How to Troubleshoot and Fix Slow Power BI Reports
Contents
Slow Power BI reports waste time and frustrate users.
The slowdown often comes from hidden issues in the data model, DAX, visuals, or refresh settings.
This guide shows you how to find the cause, fix it, and keep reports running smoothly.
Performance slowdowns in Power BI are rarely tied to a single culprit.
It’s a combination of factors, such as unoptimized data modelling, overly complex DAX, and visual-heavy report pages.
The most reliable way to solve these issues is to follow a structured approach:
- Identify where the slowdown is happening.
- Apply fixes specific to that bottleneck.
- Adopt best practices to prevent performance issues in future.
Trainer Insight: When people first come to our Power BI courses, slow reports are one of their biggest frustrations.
The good news is that performance issues nearly always have a fix.
With the right mix of data modelling, DAX optimisation, and lean visuals:
You can transform sluggish dashboards into fast, reliable tools that teams love to use.
Step 1: Identify the Problem Area
Before making changes, you need to know what’s slowing the report down.
Power BI Desktop has a built-in Performance Analyzer that breaks down each visual’s load time into:
- DAX Query Execution Time – How long it takes to run the underlying calculations.
- Visual Rendering Time – How long it takes to draw the visual on screen.
- Other Time – Overhead such as retrieving data from the source.
If most of the time is spent in DAX, the issue is likely calculation related.
If it’s rendering time, the problem is visual-heavy pages.
If it’s “other,” you may have refresh or data source bottlenecks.
Step 2: Common Causes and Fixes
1. Poor Data Modelling
The structure of your data model directly affects how fast your Power BI report runs.
When models include unnecessary columns, redundant tables, or complex relationships, every calculation and filter takes longer to process.
Why it happens: Many reports start with a single “flat” table because it’s simple to build.
However, this approach stores repeated data, increases memory usage, and forces Power BI to process more rows.
Overuse of bidirectional relationships can also lead to unnecessary filtering overhead.
How to fix it:
- Adopt a star schema design: Separate numeric facts from descriptive attributes.
- Remove unused fields: Only keep columns and tables actively used in visuals or calculations.
- Optimize relationships: Use single-direction relationships by default.
Example: Restructuring a flat transactional table into a star schema and removing unused text fields reduced a file size by 40% and cut page load times by more than half.
Trainer Insight: Part of our Power BI training in London is a section on optimisation.
By simply restructuring their model, our delegates cut load times in half and unlock much smoother visuals.
It’s a reminder that good modelling is the foundation of great performance.
2. Inefficient DAX Measures
Even with a clean data model, poorly optimized DAX can create performance bottlenecks.
Every time a visual refreshes, Power BI recalculates the measures involved, so unnecessary complexity adds up quickly.
Why it happens: Common causes include using FILTER() when a direct condition would work, relying on iterators (SUMX, AVERAGEX) where base aggregations suffice, or recalculating the same logic multiple times within one measure.
How to fix it:
- Simplify filter logic: Replace FILTER() in CALCULATE with direct filter conditions when possible.
- Use the right aggregation: Reserve iterators for when they’re truly needed; otherwise, use SUM or AVERAGE.
- Leverage variables: Store intermediate results to avoid repeated calculations.
Example: Rewriting a sales margin measure to use variables instead of nested calculations.
Before Variables:
With Variables:
This speeds the query up by over 60%!
3. Visual Overload
Too many visuals or overly complex visuals can slow report performance, even if the DAX behind them is optimized.
Why it happens: Each visual is a separate query, and high-cardinality tables require extra processing.
The more visuals on a page, the longer it takes for everything to render.
How to fix it:
- Limit visuals per page: Keep layouts focused, aiming for 8–10 visuals at most.
- Aggregate data: Use summary tables or charts rather than raw transaction-level detail.
- Choose efficient visuals: Replace slow custom visuals with faster native Power BI visuals when possible.
Example: Splitting a 15-visual financial dashboard into two pages and replacing heavy custom visuals with native charts cut load time from 12 seconds to under 5 seconds.
Here is the Performance Analyzer with the overloaded dashboard on top, and streamlined dashboard below.
As you can see, one is running much slower than the other!
Check out the dashboards to see the difference.
Trainer Insight: We have been consulting on Power BI since 2020, report designers consistently underestimate how much visuals affect performance.
Even with clean DAX, loading 15 visuals on a page can frustrate users.
Teaching learners to focus on fewer, higher-impact visuals improves performance and user engagement.
4. Data Refresh Bottlenecks
Slow refreshes can impact not only scheduled updates but also real-time performance in DirectQuery or composite models.
Why it happens: Power Query steps that break query folding, importing unnecessary historical data, or poorly performing data gateways can all increase refresh time.
How to fix it:
- Preserve query folding: Keep transformations simple so they can be executed at the source.
- Filter at the source: Apply conditions before data reaches Power BI.
- Optimize refresh timing: Schedule large refreshes during low-usage windows to reduce strain on source systems.
Step 3: Test Your Fixes
After each optimisation, rerun the Performance Analyzer!
Take another run through of things, using the same slicers and filters.
Then you can compare load times before and after the changes!
It sounds simple, but people often tend to forget to test their changes.
Extra Step: Long-Term Best Practices!
Finally, here are our final recommendations for best practices.
Keep these in mind whenever making Power BI reports, and you’ll minimise any issues!
- Start with a clean star schema model, avoid redundant relationships.
- Write efficient DAX from the beginning and review regularly.
- Keep visuals lean; focus on clarity over quantity.
- Monitor dataset size and refresh performance monthly.
- Document model changes, so optimisation work can be maintained over time.
Conclusion
Power BI performance problems usually stem from a mix of model inefficiencies, heavy visuals, and unoptimized DAX.
By methodically identifying bottlenecks, applying targeted fixes, and following proven best practices:
You can transform slow dashboards into responsive, decision-ready tools.
- Facebook: https://www.facebook.com/profile.php?id=100066814899655
- X (Twitter): https://twitter.com/AcuityTraining
- LinkedIn: https://www.linkedin.com/company/acuity-training/