The Star Schema Trick All Power BI Pros Use (But Won’t Say): Fix Digital Spaghetti, Speed Up DAX & Clean Your Model episode artwork

EPISODE · Sep 26, 2025 · 19 MIN

The Star Schema Trick All Power BI Pros Use (But Won’t Say): Fix Digital Spaghetti, Speed Up DAX & Clean Your Model

from M365.FM - Modern work, security, and productivity with Microsoft 365 · host Mirko Peters - Founder of m365.fm, m365.show and m365con.net

Your tangled web of tables isn’t a data model—it’s digital spaghetti, and that’s why every new slicer makes your report crawl like a floppy drive in 1995. The fix isn’t another DAX hack, it’s the shape of your model: one or more slim fact tables in the center (sales, visits, events), surrounded by clean dimension tables for who, what, when, and where. In this episode, we walk through how star schema design lines up with the VertiPaq engine, why it makes filters and relationships behave predictably, and how a few structural changes can turn a sluggish, fragile model into something you’re actually proud to show your boss.THE DIGITAL SPAGHETTI PROBLEMWe start with the classic “Digital Spaghetti” pattern: one giant flat table containing every column anyone ever found useful—customer names, regions, job titles, amounts, discounts, everything. It works for the first demo, then collapses once you stack slicers, cross‑filters, and real user traffic, because the engine has to wade through duplicated text and broken relationships on every query. You’ll hear why Microsoft’s own guidance and experts like SQLBI keep repeating the same message: VertiPaq is optimized for star schemas, and flattened models trigger auto‑exist issues, missing combinations, and misleading totals. We walk you through a quick three‑step “spaghetti check” and show how moving attributes out of the fact into dimensions instantly cleans up performance, filter behavior, and the accuracy of your totals.FACTS VS DIMENSIONS: THE FIRST SORTING HATNext, we put your tables under the Sorting Hat: facts vs dimensions. Facts measure (how many, how much, how often), dimensions describe (the who, what, when, where), and the “one” side of every relationship should always be a true dimension. We show how to spot the difference in real models—transactions vs Customers, Products, Dates, Regions—why fact tables should only reference keys plus numeric measures, and why dimension tables should be the single source of truth for slicers and attributes. You’ll learn how to fix identity problems with surrogate keys, why slicers should always point at dimensions (not bloated fact columns), and how this one separation removes an entire class of “why is this total wrong?” debugging sessions.NORMALIZE THE FACT, FLATTEN THE DIMENSIONFinally, we get to the “trick pros use but won’t say”: normalize your facts, flatten your dimensions. Facts stay lean—keys plus measures—so queries stay fast and storage efficient, while dimensions become rich, flattened lookups that hold all the descriptive context in one place. We unpack why Microsoft pushes this pattern in their guidance, how it lines up with VertiPaq compression and filter propagation, and how to refactor an existing “all‑in‑one” table into a proper star schema without rewriting your entire report. Once you adopt this shape, DAX stops feeling like Sudoku after twelve beers and starts behaving like a simple language on top of a clean structure.WHAT YOU’LL LEARNHow to spot a “Digital Spaghetti” model and run a 30‑second health check on your current schema.The practical difference between fact and dimension tables in Power BI and Fabric.Why VertiPaq and DAX are optimized for star schemas—not flat, all‑in‑one tables.How to use surrogate keys, one‑to‑many relationships, and hidden fact columns to clean up your model.How to normalize facts, flatten dimensions, and move slicers onto lookup tables for instant performance wins.THE CORE INSIGHTThe core insight of this episode is that most “slow DAX” problems are actually “bad model” problems. When you stop treating your data model as a dumping ground and reshape it into a clean star schema—with lean facts, rich dimensions, and relationships that tell the engine exactly how to filter—performance, clarity, and maintainability all jump at once. That’s the quiet trick the pros rely on: fix the shape, and suddenly the engine works with you instead of against you.WHO THIS EPISODE IS FORPower BI developers stuck with slow, fragile reports and bloated tables.Data modelers and analytics engineers designing semantic models in Power BI or Fabric.Consultants and BI leads tasked with “making reports faster” without rewriting every measure.Anyone preparing for Microsoft data exams who needs to internalize why star schema is non‑negotiable.ABOUT THE AUTHOR / HOSTMirko Peters is a Microsoft 365 and data platform consultant and host of the M365.FM podcast, helping organizations treat Microsoft 365, Fabric, and Power BI as one integrated operating system instead of a pile of disconnected reports. He works with teams running on Microsoft 365, Azure, and modern BI stacks to design star‑schema‑driven models, governance, and performance patterns—so DAX feels boring and predictable instead of like a late‑night debugging adventure.Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support.

Your tangled web of tables isn’t a data model—it’s digital spaghetti, and that’s why every new slicer makes your report crawl like a floppy drive in 1995. The fix isn’t another DAX hack, it’s the shape of your model: one or more slim fact tables in the center (sales, visits, events), surrounded by clean dimension tables for who, what, when, and where. In this episode, we walk through how star schema design lines up with the VertiPaq engine, why it makes filters and relationships behave predictably, and how a few structural changes can turn a sluggish, fragile model into something you’re actually proud to show your boss.THE DIGITAL SPAGHETTI PROBLEMWe start with the classic “Digital Spaghetti” pattern: one giant flat table containing every column anyone ever found useful—customer names, regions, job titles, amounts, discounts, everything. It works for the first demo, then collapses once you stack slicers, cross‑filters, and real user traffic, because the engine has to wade through duplicated text and broken relationships on every query. You’ll hear why Microsoft’s own guidance and experts like SQLBI keep repeating the same message: VertiPaq is optimized for star schemas, and flattened models trigger auto‑exist issues, missing combinations, and misleading totals. We walk you through a quick three‑step “spaghetti check” and show how moving attributes out of the fact into dimensions instantly cleans up performance, filter behavior, and the accuracy of your totals.FACTS VS DIMENSIONS: THE FIRST SORTING HATNext, we put your tables under the Sorting Hat: facts vs dimensions. Facts measure (how many, how much, how often), dimensions describe (the who, what, when, where), and the “one” side of every relationship should always be a true dimension. We show how to spot the difference in real models—transactions vs Customers, Products, Dates, Regions—why fact tables should only reference keys plus numeric measures, and why dimension tables should be the single source of truth for slicers and attributes. You’ll learn how to fix identity problems with surrogate keys, why slicers should always point at dimensions (not bloated fact columns), and how this one separation removes an entire class of “why is this total wrong?” debugging sessions.NORMALIZE THE FACT, FLATTEN THE DIMENSIONFinally, we get to the “trick pros use but won’t say”: normalize your facts, flatten your dimensions. Facts stay lean—keys plus measures—so queries stay fast and storage efficient, while dimensions become rich, flattened lookups that hold all the descriptive context in one place. We unpack why Microsoft pushes this pattern in their guidance, how it lines up with VertiPaq compression and filter propagation, and how to refactor an existing “all‑in‑one” table into a proper star schema without rewriting your entire report. Once you adopt this shape, DAX stops feeling like Sudoku after twelve beers and starts behaving like a simple language on top of a clean structure.WHAT YOU’LL LEARNHow to spot a “Digital Spaghetti” model and run a 30‑second health check on your current schema.The practical difference between fact and dimension tables...

NOW PLAYING

The Star Schema Trick All Power BI Pros Use (But Won’t Say): Fix Digital Spaghetti, Speed Up DAX & Clean Your Model

0:00 19:37

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

Frequently Asked Questions

How long is this episode of M365.FM - Modern work, security, and productivity with Microsoft 365?

This episode is 19 minutes long.

When was this M365.FM - Modern work, security, and productivity with Microsoft 365 episode published?

This episode was published on September 26, 2025.

What is this episode about?

Your tangled web of tables isn’t a data model—it’s digital spaghetti, and that’s why every new slicer makes your report crawl like a floppy drive in 1995. The fix isn’t another DAX hack, it’s the shape of your model: one or more slim fact tables in...

Is there a transcript available for this episode?

Yes, a full transcript is available for this episode. You can read the complete transcript on the episode page.

Can I download this M365.FM - Modern work, security, and productivity with Microsoft 365 episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!