Forum Discussion
Composite model sluggish, should use Direct Lake?
- 6 months ago
You can consider testing the performance with Direct Lake mode. There are two different Direct Lake storage modes available, Direct Lake on OneLake and Direct Lake on SQL Analytics endpoint/Warehouse. For better performance I would suggest you to use Direct Lake on OneLake mode for Fact tables and Import mode for Dimension tables.
Please note If your delta tables exeed certain limits and gaurdrails then you will not able to use Direct Lake on OneLake. Please refer the below article to know about those gaurd rails
In those scenarios you can opt for Direct Lake on SQL Analytics endpoint/Warehouse. However, with Direct lake on SQL analytics endpoint, your queries might fall back to direct query, and it will impact your performance again.
I would suggest you to optimize your delta tables and leverage Direct Lake on OneLake to achieve best performance
https://learn.microsoft.com/en-us/fabric/fundamentals/direct-lake-understand-storage
read my articles here: techietips.co.in
Connect on LinkedIn
Did I answer your question? Mark my post as a solution! If I helped you, click on the Thumbs Up to give Kudos.
Proud to be a Super User!
- 6 months ago
Hi! Yes... the performance drop you’re seeing is very likely due to the composite model still relying on DirectQuery. Even with model and DAX optimizations, DirectQuery typically cannot match the performance of Import or Direct Lake.
Given your data volume and Fabric medallion setup, I would strongly recommend evaluating a Direct Lake semantic model on top of your Gold Lakehouse. In most analytical scenarios like yours, Direct Lake provides performance much closer to Import while avoiding refresh overhead.
Hope that help! - 6 months ago
Hi GQ00,
For your follow-up questions: Direct Lake compute consumption is generally more predictable than Direct Query since queries use the in-memory engine instead of repeatedly accessing the SQL endpoint. With about 50 concurrent users, F8 capacity is usually sufficient if your semantic model is optimized, but actual usage depends on model size, DAX complexity, and report design. It's a good idea to monitor Capacity Metrics after enabling Direct Lake to understand compute patterns and avoid unexpected costs.
The message about free users not accessing Direct Lake is typically related to how the model is opened, not licensing. If your workspace is Fabric-enabled and you have PPU plus admin access, make sure to open the semantic model from the Service using “Edit in Desktop”, sign in with the right account, and keep Power BI Desktop updated. This usually resolves the issue and isn’t a licensing restriction.
For views, Direct Lake works best with Delta tables and doesn’t rely on views like Warehouse models. Views can be referenced through the SQL analytics endpoint, but this may cause query fallback to Direct Query and impact performance. To ensure consistent results, it’s best practice to materialize key views into Gold Delta tables before exposing them through Direct Lake.
For migration, you don’t typically need to rebuild your semantic model. Most metadata, relationships, measures, calculation groups, hidden columns, hierarchies, RLS roles, dynamic format strings, and report layout, can be reused. Migration is usually a table source rebinding process where you create or switch to a Direct Lake semantic model and reconnect tables to Delta sources using tools like Tabular Editor or TMDL. After rebinding, validate measures and check for fallback scenarios. This lets you move to Direct Lake without losing your modeling work and improves performance.
Thank you.
Thanks for all your help.
This is a solution, thank you.
If you have it handy, would you mind sharing more info on the rebinding process to migrate this model to Direct Lake?
Thank you,
Hi GQ00,
When migrating a semantic model to Direct Lake, the main goal is to reuse your existing model metadata and update the table source bindings so they reference Delta tables in your Lakehouse. Start by making sure your Gold layer tables are available as Delta tables in the Lakehouse, since Direct Lake uses Delta tables stored in OneLake. Then, create a Direct Lake semantic model from the Lakehouse in your Fabric workspace for reference. Open your current semantic model in Tabular Editor (or via TMDL if using source control) and update each table's source definition to point to the Lakehouse Delta table instead of the previous Warehouse or SQL endpoint used for DirectQuery. Once the bindings are updated, deploy the model back to the workspace. Your model objects like measures, relationships, calculation groups, hierarchies, hidden columns, RLS roles, and dynamic format strings will stay the same. After deployment, validate by refreshing metadata and testing reports, and check for Direct Lake fallback scenarios and monitor performance with the Capacity Metrics app or Performance Analyzer. This process lets you migrate to Direct Lake without rebuilding your semantic model or report logic, while benefiting from better performance.
Thank you
Sahasra.
- GQ006 months ago
Helper III
Hi,
Thanks for your reply, could you aid me in following the steps you've listed?
'Then, create a Direct Lake semantic model from the Lakehouse in your Fabric workspace for reference. - Created in the workspace
Open your current semantic model in Tabular Editor (or via TMDL if using source control) and update each table's source definition to point to the Lakehouse Delta table instead of the previous Warehouse or SQL endpoint used for DirectQuery. - I don't follow. The tables in desktop model are tables in gold warehouse. Can you please expand on this?
Once the bindings are updated, deploy the model back to the workspace.' - Publishing from desktop does not create a DQ model, it maintains DQ and Import storage mode.
Firstly, my gold tables are in a warehouse. Currently I have a desktop PBIX with DQ store mode on fact. dual on Dim.
- v-sgandrathi6 months ago
Community Support
Hi GQ00,
The confusion arises because your current model points to Gold tables in a Warehouse, while Direct Lake only works with Delta tables in a Lakehouse (OneLake). As a result, publishing the PBIX from Desktop will retain the DirectQuery/Dual storage mode and won't change the model to Direct Lake.
To switch to Direct Lake, first ensure the Gold layer tables are available as Delta tables in a Lakehouse. If the data is only in the Warehouse, you'll need to copy or materialize those tables into the Lakehouse, using a notebook, pipeline, or shortcut if the storage already exists in OneLake.
Once the Delta tables are in the Lakehouse, create a Direct Lake semantic model from the Lakehouse in the Service. You can then reuse your existing model logic by opening your current semantic model in Tabular Editor or via TMDL and updating the table bindings to reference the Lakehouse Delta tables instead of the Warehouse SQL endpoint. Model objects like measures, relationships, calculation groups, hierarchies, roles, and hidden columns will remain unchanged.
After updating the bindings, deploy the model to the workspace and check that the tables operate in Direct Lake mode without fallback.
Thank you.
- GQ006 months ago
Helper III
Hi Thanks for your reply.
I followed one of the previous comments and I think I managed to hack my way into a Direct Lake + Import model. Now it is a bit flimsy, in the sense that th eUI doens't really tell you you are in DL, but it is a 10kb model, with lightning fast visuals rendering. https://youtu.be/V4rgxmBQpk0?t=4087
Mind you, fact tables are still from the gold warehouse, whereas Dim are also from the warehouse, but import mode - I believe I can even add views to the model, haven't tried-.
TE allowed me to copy the import tables, measures and relationships via simple ctrl+c ctrl+v - incredible -, however some things did break along the way, such as dynamic format string.
Please note that I wasn't able to refresh the model initially due to RangeStart and RangeEnd parameters, had to remove those, and the partitions & filters, since DL does not have partitions.
Editing the DL semantic model via desktop is still an issue, an apparently I'm not the only one experiencing it, and unfortunately theri work around did not work for me. https://community.fabric.microsoft.com/t5/Desktop/Power-BI-Direct-Lake-model-choosing-edit-in-desktop-not-working/m-p/5115329
Finally, I'm not sure how I can salvage any of the visual content, their position, size, color coding; I'll ponder if this approach is still worth following all things considered.
Having said that I want to take a moment to thanks everyone for their help