(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisbon
Power BI

Star schema modeling in Power BI: best practices that make a difference

João Barros 28 de June de 2024 2 min read

The quality of a Power BI report depends 80% on the underlying data model, not the visuals. Star schema modeling — a central fact table surrounded by dimensions — is the pattern recommended by Microsoft and by the VertiPaq engine.

Why star schema?

The VertiPaq columnar engine compresses repeated data with high efficiency. In a star schema, dimensions have few unique values (e.g. product names, regions) and compress almost perfectly. The fact table has many rows but high-cardinality columns that also compress well as separate columns.

Snow-flake schemas (normalized dimensions) look "cleaner", but force VertiPaq to do more in-memory joins, increasing the footprint and degrading performance. Rule: denormalize your dimensions.

Practical rules

  • One date table per model — never use Power BI's automatic date hierarchy; create an explicit date table marked as Date Table.
  • Avoid direct many-to-many relationships — use bridge tables and bidirectional filtering only when indispensable.
  • Integer surrogate keys — joins on INT are faster than on strings.
  • Remove unnecessary columns — every column not used in the report takes memory and increases refresh time.

Typical structure

Facts: fSales
  SurrogateKey_Date INT
  SurrogateKey_Product INT
  SurrogateKey_Customer INT
  Quantity INT
  NetAmount DECIMAL

Dimensions: dDate, dProduct, dCustomer, dRegion

Validate the model

Use the Performance Analyzer (View → Performance Analyzer) to identify slow visuals. A visual that takes more than 2 seconds to load usually signals a model problem — high cardinality in a dimension or inefficient DAX measures.

Conclusion

Investing time in star schema modeling before building reports saves hours of troubleshooting later. A well-structured model translates into shorter refresh times, simpler DAX queries and reports that users love because they are fast.

Share: