How to Reduce Fabric Semantic Model Memory and Refresh Time?

Optimize enterprise-scale semantic models
Answer Correct answer: A, D — Split OrderDateTime into date and time columns and replace TotalSalesAmount with a measure to cut memory and refresh time in Fabric Import mode.

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. - image

  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

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.

Community Insight

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.

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.

Community Discussion (11 comments)

Momoanwar 👍 27
A : Best practice D : measure better than column
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.
NRezgui 👍 1 Selected: AD
A & D is the answer
Rakesh16 👍 1 Selected: AD
A & D is the answer
6d1de25 👍 1 Selected: BD
B&D are correct.
woliveiras 👍 1 Selected: AD
A and D
282b85d 👍 1 Selected: AD
The correct answer is A and D
stilferx 👍 1 Selected: AD
IMHO, A & D
Nefirs 👍 2 Selected: AD
It's A D
Momoanwar 👍 7 Selected: AD
Its AD
Nicofr 👍 3 Selected: AD
A should compress the memory size D should reduce the memory usage but

Comments & Corrections

No comments 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.

Submitted for moderation before publishing. Keep it helpful and respectful.

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.

Related Analysis

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