Episode Details
Back to Episodes
Power BI data modeling: fix your star schema, DAX, and relationships to eliminate the $10,000 performance tax
Season 1
Published 6 months ago
Description
Power BI data modeling: in this episode of M365.fm, Mirko Peters breaks down why your “it works” Power BI reports quietly burn up to $10,000 a year in capacity and waiting time—and how a proper star schema fixes both performance and cost. He starts with the invisible tax of bad models: imported everything, bloated columns, accidental many‑to‑many relationships, and endless calculated columns that turn every refresh into an expensive, CPU‑heavy ritual disguised as “self‑service BI.”
Mirko first names the problem as technical debt in your model. Treating a table like a junk drawer of unused fields, Excel‑style logic, and convenience joins forces Vertipaq to store and scan far more data than any visual actually needs. Every “quick” choice—importing entire tables, leaving text columns untouched, stacking measures on top of calculated columns—multiplies memory pressure and refresh time until your Premium capacity looks overloaded while actually just wading through clutter.
He then introduces dimensional modeling as the adult version of “just import the view.” At the center sits a lean fact table—transactions, events, numbers—surrounded by dimension tables that describe products, customers, dates, and regions. One‑to‑many relationships, surrogate keys, and clear cardinality give the engine a predictable map, so filters flow cleanly, compression works, and DAX calculations stop behaving like detective work. This star schema is what separates hobby reports from models that survive real enterprise load.
The episode shifts into DAX discipline and relationship hygiene. Mirko explains why most people misuse calculated columns, iterator functions like SUMX, and bidirectional relationships, turning an efficient columnar engine into a slow, row‑by‑row calculator. He shows how to push logic back into Power Query, favor core measures over deep nesting, and keep relationships single‑directional so context is obvious and the engine does not waste cycles resolving ambiguous filter paths.
Throughout, he ties every modeling decision back to money. Bloated models mean longer refresh windows, higher Premium utilization, fewer concurrent users, and teams wasting time staring at loading spinners. A clean star schema with disciplined DAX shrinks memory, speeds up visuals, and delays capacity upgrades—turning a one‑time modeling effort into a recurring saving on your analytics bill.
WHAT YOU WILL LEARN
Power BI is not slow—your model is. The moment you replace junk‑drawer tables and clever‑but‑expensive DAX with a disciplined star schema and bor
Mirko first names the problem as technical debt in your model. Treating a table like a junk drawer of unused fields, Excel‑style logic, and convenience joins forces Vertipaq to store and scan far more data than any visual actually needs. Every “quick” choice—importing entire tables, leaving text columns untouched, stacking measures on top of calculated columns—multiplies memory pressure and refresh time until your Premium capacity looks overloaded while actually just wading through clutter.
He then introduces dimensional modeling as the adult version of “just import the view.” At the center sits a lean fact table—transactions, events, numbers—surrounded by dimension tables that describe products, customers, dates, and regions. One‑to‑many relationships, surrogate keys, and clear cardinality give the engine a predictable map, so filters flow cleanly, compression works, and DAX calculations stop behaving like detective work. This star schema is what separates hobby reports from models that survive real enterprise load.
The episode shifts into DAX discipline and relationship hygiene. Mirko explains why most people misuse calculated columns, iterator functions like SUMX, and bidirectional relationships, turning an efficient columnar engine into a slow, row‑by‑row calculator. He shows how to push logic back into Power Query, favor core measures over deep nesting, and keep relationships single‑directional so context is obvious and the engine does not waste cycles resolving ambiguous filter paths.
Throughout, he ties every modeling decision back to money. Bloated models mean longer refresh windows, higher Premium utilization, fewer concurrent users, and teams wasting time staring at loading spinners. A clean star schema with disciplined DAX shrinks memory, speeds up visuals, and delays capacity upgrades—turning a one‑time modeling effort into a recurring saving on your analytics bill.
WHAT YOU WILL LEARN
- Why inefficient Power BI models create a hidden “inefficiency tax” on capacity and time.
- How dimensional modeling and star schemas make Vertipaq faster and more predictable.
- Why many‑to‑many relationships, natural keys, and bidirectional filters hurt performance.
- How to move heavy logic into Power Query and keep DAX measures lean and reusable.
- How a cleaner model can realistically save thousands per year in Premium and labor costs.
Power BI is not slow—your model is. The moment you replace junk‑drawer tables and clever‑but‑expensive DAX with a disciplined star schema and bor