Forum Discussion
When to Choose Views vs. Materialized Lake Views
- 1 month ago
Thanks for your inputs. What I really love with Fabric is we have pretty solid choices based on Architectural choices, whether we want to proactively have Fabric do work in case of MLV or do the work in real time in case of views. The solution depends on what direction works for our use case.
Hi ipkus,
I would not make the choice based primarily on row count. I think the more useful distinction is whether you want the transformation evaluated at query time or materialized at refresh time.
A standard SQL view is a good fit when the logic is relatively lightweight, query-time freshness matters, and the runtime performance is already acceptable.
A Materialized Lake View makes more sense when joins, aggregations or other transformations are expensive and repeatedly consumed. Fabric persists the result as a Delta table, so downstream consumers query the precomputed result rather than rerunning the transformation each time.
There are also a couple of Fabric-specific considerations I would add.
For Direct Lake, Microsoft documents that an unmaterialized SQL view can cause Direct Lake on a SQL endpoint to fall back to DirectQuery. An MLV produces a physical Delta table, so it can be consumed through Direct Lake subject to the normal model guardrails.
Also, current MLVs do not require you to manually orchestrate every dependency. Fabric tracks the MLV lineage and refreshes dependent views in the correct order. With optimal refresh, Fabric can also choose between incremental, full or no refresh depending on what changed.
So my general approach would be:
- Use a normal view for simple, fresh, inexpensive query-time logic.
- Use an MLV when repeated computation, Direct Lake compatibility, or reusable Silver/Gold transformations justify the additional storage and refresh lifecycle.
I would be cautious about universal thresholds such as 5M or 50M rows. I am not aware of Microsoft documenting those as MLV decision boundaries. Query complexity, concurrency, refresh requirements and the consumption pattern are usually more useful signals than row count by itself.
AI-assisted drafting: AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.