Forum Discussion
Power BI Performance Issue
- 6 months ago
If the visual shows “Query has exceeded the available resources” and every interaction is slow in Desktop, this is usually one of these:
-
the DAX query generated by the matrix is too expensive (high cardinality + lots of measures + calc groups),
-
the Desktop machine is hitting memory/CPU limits sooner than the Service capacity,
-
or the model is forcing the engine into row-by-row / non-folding patterns.
1) Model-level improvements
These usually help a lot:
-
Reduce cardinality:
-
don’t use long text keys in relationships (use integer surrogate keys)
-
split datetime into date (and maybe hour) if you don’t need full timestamp
-
-
Ensure a proper star schema:
-
dimensions filter facts (single-direction)
-
avoid bi-directional unless absolutely needed
-
-
Remove unused columns / reduce string columns in facts
2) Identify what’s slow
Open DAX Studio → connect to the Desktop model → run:
-
Server Timings
-
Query Plan
Then refresh the slow visual in Power BI Desktop to capture the query.
What to look for:
-
SE (Storage Engine) time high → model / relationships / cardinality / storage mode issue
-
FE (Formula Engine) time high → DAX patterns, calc groups, iterators, context transitions
-
# of Storage Engine queries very high → calc group causing measure re-evaluation many times
3) Create pre-aggregations at the source
If you can’t change the calculation logic, one of the most effective performance options is to reduce the amount of data the engine must scan by introducing pre-aggregated fact tables in the source (or Lakehouse/Warehouse) and using them in the model.
4) Avoid iterator functions
As a general rule, try to avoid iterator functions such as SUMX, FILTER, ADDCOLUMNS, RANKX on large tables whenever possible. These functions execute row by row in the Formula Engine, which is significantly slower than simple aggregations pushed to the Storage Engine. In models with calculation groups and matrix visuals, iterators can multiply the amount of work per cell and quickly lead to slow interactions or “Query has exceeded the available resources” errors.
-