Key takeaways
- Measure whether time is spent querying, transferring, or rendering before changing anything.
- Reduce rows and columns at the source; most slow dashboards send more data than the visual needs.
- Each visual can issue a separate query, so page complexity multiplies load.
- Pre-aggregation and caching trade freshness and flexibility for speed; state the trade-off.
On this page
Locate the delay first
Start with a stopwatch and a browser network panel. A dashboard that takes twelve seconds may spend nine in the database, one transferring, and two drawing. Optimising the visual layer in that case changes almost nothing.
Test one visual at a time with filters cleared, then with the heaviest filter combination. Check the query log or the tool's performance analyser for duration and rows returned. If the query is fast but the page is slow, the problem is page weight or the number of concurrent queries.
Reduce data before it reaches the visual
Every visual should receive the smallest table that can answer its question. Aggregate in SQL or the semantic layer, select only the columns used, and filter to the required history window. A chart showing monthly totals does not need transaction rows.
Summary tables and materialised views move work from query time to refresh time. The trade-off is freshness and flexibility: a daily summary cannot answer a question about the last hour, and a fixed summary cannot support an unplanned breakdown. Keep a detail path for drill-through when the summary is not enough.
- Select only the columns the visual uses.
- Filter to the required history window in the query, not in the visual.
- Aggregate to the chart grain before transfer.
- Avoid DISTINCT on large tables as a substitute for fixing duplicates.
Design the model for the queries people run
A star schema with clean relationships usually outperforms a wide table with many-to-many joins. Use correct data types, avoid calculated columns over large fact tables, and push row-level calculations into the source where possible.
Partition large tables by date and keep statistics current. Indexes and materialised views help, but only for the filters people actually use. A model tuned for one report can slow another, so test the top queries together rather than in isolation. Bidirectional relationships and many-to-many bridges are common hidden costs.
Cut the number of queries per page
Many BI tools issue a query per visual. A landing page with twenty cards can send twenty queries at once, and the database may serialise them. Reducing the visual count or combining cards into one table often produces a larger gain than rewriting a single query.
Choose a landing page budget and treat it as a design constraint. Eight to ten visuals is a workable rule of thumb for a summary page, with detail behind drill-through. Avoid slicers that force a full refresh on every click, and do not preload hidden tabs that nobody opens.
Reduce page weight
Large images, embedded documents, custom web fonts, and images used as backgrounds all add transfer time. Compress images, limit font families, and remove decorative elements that do not carry information. A dashboard is a tool, not a poster.
Tables with thousands of rows and conditional formatting on every cell are expensive to render. Paginate or aggregate the table, apply formatting to the visible range, and avoid nested containers that force repeated layout work. Test on a mid-range laptop and a phone, not only on the developer machine.
Fix in the right order
Work from the largest cost down, changing one layer at a time. Keep a baseline measurement so you can tell whether a change helped or merely moved the delay somewhere else. A dashboard that loads quickly but shows the wrong grain is not a performance win.
Performance work is iterative and slightly unglamorous. The table below maps common symptoms to the layer worth inspecting first, but confirm with a measurement before committing to a fix.
- Measure before and after each change; keep a baseline.
- Test with production-sized data, not a small sample.
- Cache only where a stated freshness tolerance allows it.
- Set a performance budget for load time and visual count.
| Symptom | Likely cause | First fix |
|---|---|---|
| All visuals slow | Source query or model | Aggregate, filter, index, partition |
| One visual slow | Query or visual settings | Reduce rows, simplify the calculation |
| Fast query, slow page | Too many visuals or heavy assets | Cut visuals, compress assets |
| Slow for some users only | Row-level security or network | Test with that role and location |
| Slow after refresh | Stale statistics or cold cache | Update statistics, warm the cache |
Frequently asked questions
Is the BI tool usually the cause of a slow dashboard?+
Rarely on its own. Most delays come from the amount of data requested, the model design, or the number of visuals on a page. The tool matters, but it is usually amplifying a problem that exists earlier in the chain.
Does caching solve slow dashboards?+
It can hide the problem for repeated views, but it introduces stale data and does not help the first load or an unusual filter. Use caching when the freshness tolerance is explicit, not as a substitute for fixing the query.
How many visuals should a dashboard page have?+
A summary page of eight to ten is a reasonable rule of thumb. Treat it as a design budget rather than a limit; a page with fewer, well-chosen visuals is easier to read and cheaper to query.
Should extracts replace a live connection?+
Extracts suit read-heavy dashboards that can tolerate scheduled freshness. Live connections suit operational views that need current data. The decision is about tolerance and source load, not about which option sounds more modern.
Need help applying this?
Improve your bi dashboards & reporting.
Review the service scope or tell us what you are trying to improve. We will reply with a clear next step.
Free KPI definition templateRelated reading
Power BI report performance checklist
A practical Power BI performance checklist covering the model, DAX, visuals, refresh, and the measurements that tell you whether a change helped.
KPI dashboard design: how to choose metrics that matter
A good KPI dashboard starts with decisions, not charts. Learn how to choose, define, and present metrics people will actually use.