Forum Discussion
How to optimize semantic model
- 7 months ago
Hi minhnhatdanchoi ,
Consider the GYC video as starter: Reframe your Power BI Direct Lake Semantic Model
and check the post as well
Solved: Re: How to do incremental refresh using datalake o... - Microsoft Fabric Community
If this response was helpful in any way, I’d gladly accept a 👍much like the joy of seeing a DAX measure work first time without needing another FILTER.
Please mark it as the correct solution. It helps other community members find their way faster (and saves them from another endless loop 🌀.
Environment & scale
Lakehouse: ~20 tables total.
Fact tables: 5 fact tables that receive new data daily.
Ingest rate: ~100,000 new rows per day (total across facts).
Historical size: tables contain data from July → each table ≈ 50 million rows.
Semantic models: using Direct Lake mode.
Dashboards: slicer/filter targets the most recent 1 month of data.
Capacity: currently on F4.
Hi minhnhatdanchoi,
Do your visuals run on all the data in these tables? Are you able to limit what you bring into the report to just the recent records?
If you limit the data at ingest time rather than using a filter, the VertiPaq engine won't need to try and process 50 million records every interaction.
If you found this helpful, consider giving some Kudos. If I answered your question or solved your problem, mark this post as the solution.
- minhnhatdanchoi7 months agoFrequent Visitor
I need to know how can I limit the data at the ingest time rather than using a filter. I'm kind of new to PowerBI 😅
- tayloramy7 months agoSuper User
Hi minhnhatdanchoi,
What storage mode are you using? Import, DirectLake, or DIrectQuery?
If you're using Import mode, then you can filter the data in Power Query in the "Transform Data" window.
If you're using DIrectLake or DirectQuery it gets more complicated.
If you found this helpful, consider giving some Kudos. If I answered your question or solved your problem, mark this post as the solution.
- minhnhatdanchoi7 months agoFrequent Visitor
Yeah I'm using DirectLake. I just receive information that user also want to filter date range outside 30 last day so this step is not necessary now, but I still want to know how to do it with DirectLake mode