Power BI 6 min

How to Make Your Power BI Reports Faster: 7 Tips

Short answer

To speed up a Power BI report, start by checking your connection mode and switching to Import where possible, then reduce the number of visuals per page, disable auto date/time, and use the Performance Analyzer to find slow queries. On the DAX side, avoid FILTER() on full tables and remove unused columns and measures from your model. These changes address the most common causes of slow reports.

Slow Power BI reports frustrate users and undermine trust in your data. These 7 practical tips improve report load times and visual responsiveness without a full rebuild.

1. Use Import Mode Where Possible

DirectQuery sends a live query to your data source every time a user interacts with the report. If your source database is not highly tuned, this causes noticeable delays. Import mode loads data into Power BI’s in-memory VertiPaq engine, where queries run much faster. For most reporting scenarios, a scheduled refresh (hourly or daily) keeps data fresh enough. See DirectQuery vs Import Mode in Power BI for a full comparison before making the switch.

2. Reduce Visuals Per Page

Every visual on a page fires at least one query when the page loads or a filter changes. A page with 15 visuals fires 15 queries simultaneously. Power BI processes these in parallel, but even so, a page crowded with visuals is slower than a focused one. Aim for 6 to 8 visuals per page. Move detail-heavy tables or supplementary charts to a drillthrough page that users navigate to on demand rather than loading upfront.

3. Disable Auto Date/Time

By default, Power BI creates a hidden date hierarchy for every date column in your model. In a model with ten date columns, this means ten hidden date tables, each occupying memory and adding to refresh time. If you have a proper date table in your model, auto date/time adds no value. Disable it under File, then Options, then Data Load: uncheck “Auto date/time for new files”.

4. Use Performance Analyzer to Find Slow Visuals

Before optimising, measure. The Performance Analyzer in Power BI Desktop (View tab, Performance Analyzer, then Start recording) shows how long each visual takes to load, broken down into DAX query time and rendering time. A visual with 8 seconds of DAX query time needs DAX optimisation. A visual with 0.1 seconds of DAX query time but 5 seconds of rendering time is a visual complexity problem. Target the largest contributors first.

5. Optimise Your DAX Measures

The most common DAX performance mistake is using FILTER(Table, condition) inside CALCULATE when a direct filter argument would work. CALCULATE(SUM(Sales[Revenue]), FILTER(Sales, Sales[Region] = "West")) iterates every row of Sales. CALCULATE(SUM(Sales[Revenue]), Sales[Region] = "West") pushes the filter to the storage engine. Another common issue is evaluating the same sub-expression multiple times inside a measure. Use VAR to compute it once and reuse the variable. For more on writing efficient DAX, see The CALCULATE Function in Power BI Explained.

6. Use Aggregations for Large Datasets

If your fact table has tens of millions of rows, create a pre-aggregated summary table in Power Query or your database. Power BI’s aggregations feature lets you configure which table to use for summary-level queries and which to use for detail-level queries. Most dashboard visuals show aggregated totals, not row-level detail, so Power BI can answer them from the smaller aggregation table. The detail table is only queried when a user drills into individual records.

7. Remove Unused Columns and Measures

Every column you import occupies memory in the VertiPaq engine, even if no visual or measure uses it. Open your Power Query editor and identify columns from the source that your report does not need. Delete them there, not by hiding them in the Fields pane (hiding does not remove them from memory). Also review your measures list for obsolete measures left over from earlier iterations. A leaner model loads faster, refreshes faster, and is easier to maintain.

Our tip: Run the Performance Analyzer before and after each optimisation change. It takes two minutes and shows you exactly how much each change improved (or did not improve) load times. Without measuring, you are guessing.

Frequently asked questions

How do I find which DAX measure is slowing down my report?

Use the Performance Analyzer in Power BI Desktop. Open it from the View tab, click Start recording, then refresh your report visuals. The analyzer shows each visual's load time broken into DAX query time, visual display time, and other overhead. Click the arrow next to a visual to copy the DAX query it fired, then paste that into DAX Studio for deeper analysis. DAX Studio shows a full execution plan and identifies which part of the measure is slowest.

Does adding more columns to a visual make it slower?

Yes. Each additional field you add to a visual increases the complexity of the DAX query that visual generates. A table with 20 columns fires a significantly more complex query than one with 5 columns. If users need to see many columns, consider a drillthrough page where they navigate to the detail from a summary view, rather than showing all columns on the main report page.

What is the auto date/time setting in Power BI and why does it slow things down?

Auto date/time is a Power BI setting that automatically creates a hidden date table for every date column in your model. If your model has ten date columns, Power BI creates ten hidden date tables. Each of these occupies memory and adds to refresh time. If you already have a dedicated date table in your model, you do not need auto date/time. Disable it under File, Options, Data Load to eliminate this overhead.

Can I improve performance without changing the data model?

Yes, to a degree. Reducing visuals per page, hiding unused fields from the Fields pane (which does not delete them but prevents accidental use), and replacing complex visuals with simpler ones all improve performance without touching the model. However, the biggest performance gains almost always come from model changes: removing unused columns, switching to Import mode, disabling auto date/time, and optimising DAX. Surface-level changes help, but model optimisation is where the real speed improvements live.

Want a dashboard or automation built for you?

Stuurboard BI builds custom Power BI dashboards and workflow automations. Pragmatic, fast, and without the fuss.