3.3. Optimize Model Performance
💡 First Principle: Performance comes from doing less work: storing fewer and simpler values, and asking the engine smaller questions. Most slowness traces to a short list of causes: unnecessary columns and rows, high-cardinality columns, more detail than reports need, inefficient DAX, and expensive relationships. Measure first to find which one applies, then fix that cause.
Why care? Users abandon slow reports. A page that takes 20 seconds to load won't be used no matter how correct it is, and large models cost more to refresh and may exceed capacity limits. The exam tests optimization through "minimize model size" and "a visual is slow; what should you do first?" scenarios, where the right answer is usually the least invasive, most targeted fix.
Think of a timing breakdown. When an ambulance arrives late, you check dispatch time, travel time, and handoff time separately before blaming the driver. Performance Analyzer gives you the same breakdown for each visual.
⚠️ Common Misconception: The slowest-looking visual is always the visual's fault. Performance Analyzer splits time into DAX query, visual display, and other. Long DAX time points to the measure or model; long display time points to the visual's design; long "other" usually means waiting on other visuals in the queue.