Microsoft Certified: Fabric Analytics Engineer AssociateImplement and manage semantic models (30-35%)Hard

A data engineer is tasked with optimizing a large semantic model in Microsoft Fabric. The model contains several complex measures that perform calculations over historical data, such as 'Year-to-Date Sales' and 'Previous Quarter Revenue'. These measures are frequently used in reports and dashboards, leading to slow query performance. The underlying data is updated daily. What is the most effective approach to improve the performance of these specific measures without significantly increasing the model's footprint or refresh times for the entire dataset?

  1. ACreate calculation groups for time intelligence.
  2. BRefactor the DAX measures to use simpler functions.
  3. CImplement automatic aggregations on the fact table.
  4. DSwitch the storage mode of the fact table to DirectQuery.
Show answer & explanation

Correct answer: A. Create calculation groups for time intelligence.

Calculation groups are a powerful feature for managing and reusing common measure logic, especially for time intelligence. Instead of creating separate measures for 'Sales YTD', 'Sales PY', 'Sales PQ', etc., you can create a single 'Sales' measure and a calculation group that applies these time intelligence calculations. This reduces the number of explicit measures, simplifies maintenance, and often improves performance by optimizing the DAX engine's execution plan, especially with many similar calculations.

Why the other options are wrong

  • B. Refactoring DAX measures is a good practice but might not provide the most significant performance gain for common, complex patterns like time intelligence; calculation groups offer a more structured and optimized solution for such patterns.
  • C. Automatic aggregations improve query performance for summarized data but would not directly optimize *specific complex measures* that perform calculations over historical data, especially if they involve custom time intelligence logic.
  • D. Switching to DirectQuery would likely worsen performance for complex calculations over historical data, as it would push the entire calculation to the source system, which might be less optimized for such operations than the DAX engine.

Calculation Groups

Calculation groups in Microsoft Fabric semantic models (via Tabular Editor) allow you to group common measure calculations (e.g., time intelligence, currency conversion) into reusable items. This simplifies model design, reduces measure count, and can significantly optimize query performance for repetitive logic.

  • Centralizes common DAX logic (e.g., YTD, MTD, PY).
  • Applies calculations to existing base measures dynamically.
  • Reduces the number of explicit measures in a model.
  • Can improve query performance and model maintainability.

Memory trick: Optimize the model by grouping smart calculations, not just aggregating data.

More Implement and manage semantic models (30-35%) questions