DP-700 - Monitor and Optimize an Analytics Solution (33% of the exam) - Section 3.7

Optimize a data warehouse and query performance in Microsoft Fabric.

Improve Fabric Warehouse query performance by maintaining statistics, enabling result-set caching, and analysing query plans to select efficient join strategies. Choose appropriate data types and replace row-by-row processing with set-based T-SQL operations to cut scan cost and execution time.

statistics in a Warehouseresult-set cachingquery plan and join strategytable distribution and data typesavoiding row-by-row processing

Practice question for this objective

Free sampleMonitor and Optimize an Analytics Solutionhard

A Microsoft Fabric Spark notebook reads a very large Delta fact table partitioned by event_date, joins it to a small currency lookup, and aggregates revenue. The job re-reads the same lookup on every cell, scans far more partitions than the date filter needs, and produces uneven task durations from skewed keys. The team wants to cut wasted scanning, avoid recomputing the lookup, and let the engine adapt to skew without re-partitioning the table. Which THREE changes together best improve performance? Select THREE.

  • AApply a literal predicate on the partition column so Spark performs partition pruning and reads only the relevant event_date partitions instead of the whole table. Correct
  • BCache the small currency lookup DataFrame in memory so repeated cell executions reuse the materialised result rather than recomputing the source read each time. Correct
  • CEnable Adaptive Query Execution so Spark can coalesce shuffle partitions and split skewed partitions at run time based on the observed data statistics. Correct
  • DDisable predicate pushdown on the Delta source so the engine loads every column and row first, then filters in memory for more predictable scan behaviour.
Improve Spark query performance by combining partition pruning, caching of reused data, and Adaptive Query Execution for skew. Partition pruning limits files read when a literal filter hits the partition column, caching removes repeated reads of the small reused lookup, and Adaptive Query Execution rebalances shuffle partitions and isolates skewed keys using runtime statistics. Disabling predicate pushdown removes file skipping and forces full scans, so it works against the goal.

Why A is correct: A literal filter on the partition column lets Spark prune partitions at plan time, so only the matching files are listed and read, directly cutting wasted scanning.

Why B is correct: Caching the reused lookup keeps it materialised across cells, removing the repeated source read, which is the stated recompute cost on every cell.

Why C is correct: Adaptive Query Execution reacts to runtime statistics to handle skew and right-size shuffle partitions, addressing the uneven task durations without re-partitioning.

Why D is wrong: This is tempting as a uniformity argument, but disabling pushdown forces full reads and removes the file skipping that pruning provides, making the scanning worse.

See more DP-700 practice questions, answers explained.

Exam traps in Monitor and Optimize an Analytics Solution

Answers that look right on this material and are not. Each one is a distractor from a different question in the DP-700 bank for this domain.

  • Schedule a regular VACUUM on the Warehouse staging table so obsolete data files are removed and the nightly procedure rereads a smaller compacted file set each run.

    Why it is wrong: VACUUM is a Delta Lake maintenance command for Lakehouse tables, not a Warehouse tuning lever, and file cleanup does not address either the cursor or the oversized string columns.

  • Leave the data types as NVARCHAR and instead enable result-set caching so the slow queries return cached results on subsequent identical runs.

    Why it is wrong: Caching helps only repeated identical queries and ignores the root cause; oversized string types keep inflating memory grants and forcing conversions for every new or parameterised query that hits these columns.

  • Recreate every Warehouse table with round-robin distribution so the bulk-loaded rows are spread evenly and the dashboard scans fewer rows per distribution.

    Why it is wrong: Round-robin spreads rows but does not co-locate joins or fix estimate errors, and rebuilding every table is heavy work that does not address the stale-statistics root cause.

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