How to Reduce Fabric Semantic Model Memory and Refresh Time?

DP-600 By islever Editorial Last updated

Short answer

AD Split OrderDateTime into date and time columns and replace TotalSalesAmount with a measure to cut memory and refresh time in Fabric Import mode.

Question

You have a Fabric tenant that contains a semantic model named Model1. Model1 uses Import mode. Model1 contains a table named Orders. Orders has 100 million rows and the following fields. You need to reduce the memory used by Model1 and the time it takes to refresh the model. Which two actions should you perform? Each correct answer presents part of the solution. NOTE: Each correct answer is worth one point. - Exhibit: How to Reduce Fabric Semantic Model Memory and Refresh Time?
  1. Split OrderDateTime into separate date and time columns. Correct Answer
  2. Replace TotalQuantity with a calculated column.
  3. Convert Quantity into the Text data type.
  4. Replace TotalSalesAmount with a measure. Correct Answer

Key Takeaways

The question tests the memory and refresh trade-off between stored calculated columns and query-time measures, plus the compression benefit of splitting a high-cardinality datetime column; the common trap is assuming a calculated column saves memory.

This DP-600 question tests how to reduce memory usage and refresh time for a 100-million-row Import mode Fabric semantic model. The page confirms the correct actions are splitting OrderDateTime into date and time columns and replacing TotalSalesAmount with a measure.

Common mistake: The most common mistake is choosing B, replacing TotalQuantity with a calculated column, because calculated columns are mistakenly assumed to be virtual or free; in reality they are stored and increase model size and refresh work.

Expert Analysis

Why the Answer Is Correct

Option A is correct because splitting OrderDateTime into separate Date and Time columns reduces the number of distinct values in each column compared with a single high-cardinality datetime column, which improves VertiPaq dictionary and value encoding compression and lowers memory use. A dedicated Time column has at most 86,400 distinct values, and the Date column has a small, repeating set, so refresh also processes smaller dictionaries. Option D is correct because replacing TotalSalesAmount with a measure removes a stored calculated column; measures are evaluated at query time and do not occupy model memory, directly reducing model size and refresh cost. Together A and D address both stated goals: lower memory and faster refresh for the 100-million-row Orders table.

Why the Other Options Are Wrong

Option B is wrong because replacing TotalQuantity with a calculated column adds a stored, materialized column that consumes memory and is recomputed during refresh, which increases rather than reduces both memory and refresh time. Option C is wrong because converting Quantity to the Text data type increases storage requirements and reduces compression efficiency; numeric columns are smaller and better optimized in VertiPaq. Both B and C move in the opposite direction of the stated optimization goals.

Community Comment Notes

As fabric1 observed, separate date and time columns "achieve higher columnar redundancy and allow better data compression", and a calculated column would "inflate the memory usage", while measures are not stored in memory. Momoanwar summarizes the same reasoning: A is best practice and D is better because a measure replaces a stored column. The vast majority of voters selected A and D, and only one commenter supported B and D, which conflicts with the documented behavior of calculated columns.

Official Reference

Exam Strategy

For DP-600 optimization questions, eliminate any option that adds a calculated column or converts numeric data to text, because both increase memory. Then select actions that improve compression, such as splitting a datetime column, or move stored values to measures that are computed on demand.

Frequently Asked Questions

Why is replacing TotalQuantity with a calculated column wrong in this Fabric model?

Calculated columns are stored in the model and consume memory, so they increase model size and refresh time instead of reducing them.

Why does splitting OrderDateTime into date and time columns reduce memory?

Separating the datetime column lowers the number of distinct values in each resulting column and improves VertiPaq compression, which reduces memory usage.

More DP-600 FAQ →

Community Votes

AD
100%

100% of anonymous learners picked answer AD. Votes are pick records left by other test-takers — they are not the verified answer.

Discussion 10 contributions

Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.

From public community threads 10

  1. Momoanwar 👍 27
    A : Best practice D : measure better than column
  2. fabric1 👍 9
    I was under the impression that A should be correct due to the fact that separate date and time column achieve higher columnar redundancy and allow better data compression. Whereas solution B, an additional calculated column, would inflate the memory usage. Measure are not stored in memory and would therefore be favorable concerning the stated objective of reducing memory used and minimizing refresh times.
  3. Nicofr 👍 3
    A should compress the memory size D should reduce the memory usage but
  4. Momoanwar 👍 7
    Its AD
  5. Nefirs 👍 2
    It's A D
Show 5 more comments
  1. 282b85d 👍 1
    The correct answer is A and D
  2. NRezgui 👍 1
    A & D is the answer
  3. 6d1de25 👍 1
    B&D are correct.
  4. stilferx 👍 1
    IMHO, A & D
  5. woliveiras 👍 1
    A and D

Reader comments & corrections

No reader corrections yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Practice All DP-600 Questions

Access 115 questions with complete answers and detailed explanations.

View Full DP-600 Practice Test →

← Back to DP-600 Study Guide