What a star schema is

A star schema separates your data into fact tables and dimension tables. Fact tables hold the events you measure - orders, invoice lines, support tickets - with numeric values and keys. Dimension tables describe the things you slice by - customer, product, date, region - with descriptive attributes.

Relationships run one-to-many from each dimension to the fact table, with filters flowing from the dimension to the facts. Power BI's in-memory engine, VertiPaq, is built around this shape: it compresses columns very well and resolves these relationships efficiently.

A single wide table that mixes measures and descriptive text can work for a quick prototype. At scale it inflates the model, repeats text values millions of times, and makes every measure harder to write correctly.

The modeling habits that matter most

Keep relationships one-to-many and single-direction unless you have a specific, understood need for more; bi-directional filtering and many-to-many relationships are common sources of ambiguous results and slow queries. Use a proper date table, marked as such, for time intelligence instead of relying on auto date/time behavior spread across columns.

Remove columns you do not use, because every column costs memory and refresh time. Prefer measures to calculated columns for calculations, since measures evaluate at query time and do not bloat the model. Keep high-cardinality columns such as free-text IDs or timestamps out of the model unless a visual genuinely needs them.

Shape data before it reaches the model

Do the heavy transformation upstream, in the warehouse or lakehouse, so Power BI receives clean facts and dimensions.

Measure, do not materialize

Measures stay small and flexible; calculated columns add permanent weight to the model.

Diagnose before you optimize

Use Performance Analyzer in Power BI Desktop to see which visuals are slow and how long the DAX query takes compared with rendering. Tools such as DAX Studio and the Best Practice Analyzer in Tabular Editor can inspect model size, expensive columns, and rule violations.

If a report with a clean star schema is still slow, you are now debugging a specific measure or visual rather than a structural problem, which is a much smaller task.

Have a Power BI estate that has grown organically and got slow? Talk to us about a model review.

Key takeaways

  • Most slow or untrusted Power BI reports are modeling problems; check the semantic model before rewriting DAX or buying more capacity.
  • A star schema separates facts from dimensions with one-to-many, single-direction relationships - the shape the VertiPaq engine handles best.
  • Use a marked date table, remove unused columns, and prefer measures over calculated columns.
  • Measure first with Performance Analyzer, DAX Studio, and the Best Practice Analyzer instead of guessing.