DP-600 - Implement and Manage Semantic Models - Section 3.5

Implement performance improvements in queries and report visuals and improve DAX performance for enterprise-scale semantic models.

Use Performance Analyzer and DAX optimisation techniques to identify slow visuals and rewrite inefficient measures, targeting the VertiPaq engine's columnar storage strengths. Configure aggregations and query reduction settings to reduce the number of queries sent to DirectQuery sources and improve report responsiveness.

Performance AnalyzerDAX optimisationaggregationsquery reductionVertiPaq engine

Practice question for this objective

Free sampleImplement and Manage Semantic Modelshard

An analytics engineer is tuning a slow report page in "Power BI" against an enterprise "semantic model". They need to find out, for a single visual, how much of its render time is spent waiting on the storage engine versus the rest of the work, and they want to capture the exact DAX the visual sends so they can replay it. Which built-in tool should they use first to gather this per-visual timing and the generated query?

  • AOpen the "VertiPaq Analyzer" view in an external tool, because it breaks down each visual into DAX duration and storage engine duration and exposes the query text generated by that visual.
  • BAttach "SQL Server Profiler" to the model and trace all events, because it surfaces aggregated server-side timings that can be filtered down to one visual after the fact.
  • CInspect the "query plan" pane in DAX Studio, because it shows physical and logical plans that reveal exactly how long each visual on the page took to render.
  • DRun "Performance Analyzer" in "Power BI" Desktop, because it records each visual's DAX query duration alongside other steps and lets the engineer copy the exact query the visual generated. Correct
Use Performance Analyzer first to capture per-visual DAX duration and the exact query a slow visual generates. Performance Analyzer in Power BI Desktop records the time each visual spends in DAX query, visual display, and other categories, and it exposes a copy-query action so the engineer can replay the exact DAX, which makes it the correct starting point for isolating a slow visual before deeper engine analysis.

Why A is wrong: VertiPaq Analyzer reports column and table storage statistics such as cardinality and dictionary size, but it does not time individual report visuals or capture the DAX a visual sends, so it is the wrong first step.

Why B is wrong: Profiler captures server-side trace events but does not map them to a named visual on a report page, so isolating one visual's render breakdown from a full trace is indirect and far harder than the built-in tool.

Why C is wrong: The query plan pane explains how one query is executed but carries no wall-clock timings and is not tied to report visuals, so it cannot give the per-visual render breakdown the requirement asks for.

Why D is correct: Performance Analyzer logs DAX query, visual display, and other durations for every visual on the page and offers a copy-query action, so it directly gives the per-visual timing and the generated DAX the engineer needs.

See more DP-600 practice questions, answers explained.

More in this domain

Back to all Implement and Manage Semantic Models objectives, or the DP-600 cert hub.

Examworthy is not affiliated with or endorsed by Microsoft. Original, blueprint-aligned practice material only.