DP-700 - Monitor and Optimize an Analytics Solution - 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.

More in this domain

Back to all Monitor and Optimize an Analytics Solution objectives, or the DP-700 cert hub.

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