10 DAX Mistakes That Are Slowing Down Your Power BI Reports
The Problem with Slow DAX
When clients come to us with performance issues, 90% of the time it's not the data model—it's the DAX. Specifically, it's one of these ten mistakes:
1. Using SUMIF Instead of SUMPRODUCT
SUMIF iterates over the entire column. SUMPRODUCT is vectorized and 10x faster for most scenarios.
// Slow
Total = SUMIF(Sales[Amount])
// Fast
Total = SUMPRODUCT(Sales[Amount])
2. Not Using CALCULATE Efficiently
CALCULATE is powerful but expensive. Avoid nesting CALCULATE calls when possible.
3. Forgetting About Context Transitions
Row context and filter context are different. Misunderstanding this causes unexpected results and performance drains.
4. Overusing ALL() in Measures
ALL() removes all filters, which is often slower than using CALCULATETABLE with specific column references.
5. Creating Unnecessary Columns in Power Query
Calculated columns are row-by-row. Use DAX measures instead when possible — they're evaluated at query time, not import time.
6. Not Aggregating Data Before Import
If your source query can aggregate 10M rows down to 1k, do it in SQL, not in Power BI.
7. Using Text Instead of Numbers
If a column contains "123", it's text. Use VALUE() to convert, or fix it in the source. Text comparisons are slower.
8. Forgetting About the Cache
The first use of a measure is slower because Power BI hasn't cached the result. This is normal.
9. Creating Too Many Many-to-Many Relationships
Each relationship adds overhead. Use bridge tables and explicit measures instead.
10. Not Using Aggregation Tables
For large fact tables with millions of rows, pre-aggregated tables at month or quarter level are essential.
The Outcome
We've seen refresh times cut from 45 minutes to 8 minutes by fixing just these issues. The key: understand WHY DAX is slow, not just what to avoid.
**Quick test:** Open Performance Analyzer in Power BI. Click a visual. How much time is DAX vs. data retrieval? That tells you what to optimize.
Related Articles
Star Schema vs Flat Table: Which Should You Use in Power BI?
The data model you choose has a bigger impact on performance than any DAX optimisation. We break down when to use a star schema and when a flat table is fine.
How to Build a Rolling 12-Month Sales Report in Power BI
Step-by-step tutorial on creating a rolling 12-month report using DATESINPERIOD, a date table, and a few DAX tricks that make it dynamic and reusable.