Instiq
Chapter 2 · Model the data·v1.0.0·Updated 6/30/2026·~12 min

What's changed: Created PL-300 Chapter 2 (domain: Model the data): data model design (star schema, table/column properties, role-playing dimensions, cardinality/cross-filter direction, date table, calculated columns/tables), DAX calculations (measures vs calculated columns, CALCULATE, time intelligence, semi-additive, quick measures, calculation groups), and model performance optimization (remove unnecessary rows/columns, Performance Analyzer/DAX query view, reduce granularity).

2.3Optimize model performance

Key points

Understand optimizing the model by removing unnecessary rows/columns, identifying slow elements with Performance Analyzer and DAX query view, and reducing granularity.

A large, slow model hurts the experience. The optimization playbook is to trim the unnecessary, identify slow elements, and reduce granularity.

2.3.1Remove unnecessary rows/columns and granularity

Power BI Import (VertiPaq) compresses column-wise, so removing unnecessary columns most improves size and performance (especially high-cardinality columns—many distinct values). Remove unused rows too. Further, reducing granularity (e.g., line items to daily aggregates) sharply cuts row counts and lightens the model. Pre-aggregate to the granularity your analysis actually needs.

2.3.2Identifying slow elements

Performance Analyzer measures each visual’s DAX query time/visual display time on a report page to pinpoint slow visuals and measures. DAX query view lets you run/tune actual DAX queries to isolate causes. Use these to find slow measures/relationships/visuals and drive rewrites or model improvements.

Exam point

Cues: "biggest impact on size/perf" = remove unnecessary (especially high-cardinality) columns. "fewer rows" = reduce granularity/pre-aggregate. "measure which visual/measure is slow" = Performance Analyzer. "run/tune DAX" = DAX query view.

Warning

Watch the mix-ups: (1) Removing columns beats removing rows for size (columnar compression). (2) High-cardinality columns hurt compression. (3) Performance Analyzer measures, it does not auto-fix. (4) Over-reducing granularity can break needed analysis.

Diagram: VertiPaq uses columnar compression, so removing unnecessary (especially high-cardinality) columns most reduces size; reduce granularity/pre-aggregate to cut rows; measure slow visuals/measures on a page with Performance Analyzer; isolate causes by running/tuning DAX in DAX query view.
Trim, measure, fix

2.3.3Section summary

  • Columnar compression makes removing unnecessary (high-cardinality) columns most effective
  • Reduce granularity/pre-aggregate to cut rows and lighten the model
  • Use Performance Analyzer/DAX query view to find slow visuals/measures

Sign in to track progress — Log in.

Quick check

(just a quick review)

Q1. What most effectively reduces an Import model’s size?

Q2. A huge line-item fact is needed only at daily aggregates. Best optimization?

Q3. You want to measure which visuals and measures are slow on a report page. Best tool?

Q4. You want to isolate a slow measure’s cause by running/tuning the actual DAX query. Best?

Q5. Which column trait most hinders VertiPaq compression and bloats the model?

Check your understandingPractice questions for Chapter 2: Model the data

Keep track of your progress

The full study guide is free to read. Sign up free to practice with the question bank, track what you have read, review your mistakes, and highlight passages.