Forum Discussion
Semantic Models - Refresh Issues
- 10 months ago
HI Anonymous ,
A Direct Lake model is "always" showing the latest and greatest data and does not need refresh to update the data. A Direct lake skips the import or direct query mode and gets the data directly from the tables in the One Lake.
But, when you manually refresh a Direct Lake, it takes all the in-memory cached data and it reloads it. This can potentially cause a significant memory spike. This is particularly if you are running other items at the same time.When you didn't refresh it (and "keep your Direct Lake data up to date" is enabled then it will just be refreshed.
You could also try to monitor what else might be happening by looking at your memory usage like in DAX Studio.
- Anonymous10 months ago
Hi Anonymous ,
Thanks tayloramy and collinq for the detailed explanations.
Anonymous to recap the key points that might clarify the difference you’re seeing.
- Direct Lake doesn’t actually need a manual refresh, it reads the latest parquet/Delta files in OneLake by default. That’s why the model you didn’t refresh still works fine.
- When you trigger a manual refresh on a Direct Lake model, the engine will force a re-load of the required data into the in-memory VertiPaq cache. That reload process can be heavy, and if the query/visuals being rendered demand more column data than your F128 tier can allocate for that operation, you’ll hit the “maximum memory allocation” guardrail instead of falling back to DirectQuery Direct Lake has no DirectQuery fallback.
- The report without refresh is still serving queries in Direct Lake mode, but only “transcoding” the minimum columns needed on-demand. The one you refreshed is trying to re-hydrate more data into memory at once, hence the spike/error.
Just Check bellow things.
- Check the size of the model and memory limits for F128 in the Microsoft docs.
- Use DAX Studio or Fabric metrics to monitor memory usage during refresh to see exactly what’s happening.
- Avoid manual refresh unless you have a specific reason in Direct Lake it’s not needed under normal circumstances.
Thanks,
Akhil.
Hi Anonymous ,
Just following up to see if the points shared earlier helped clarify the behavior you were seeing with Direct Lake. Were you able to check the model size and memory usage during refresh as suggested?
This usually explains why the refreshed model hit the memory guardrail while the unrefreshed one worked fine.
Thanks,
Akhil.