Power BI · Direct Lake Performance

Direct Lake Fallback to DirectQuery — Causes, Diagnosis & Fixes

The two Direct Lake modes, the four root causes of fallback, the DirectLakeBehavior property, how to detect fallback with DAX Studio and Performance Analyzer, and the Delta table fixes that keep queries on the fast path — all verified against Microsoft Learn.

Quick Answer

Direct Lake fallback to DirectQuery happens when the VertiPaq engine cannot stay on the columnar in-memory path and routes queries through the SQL analytics endpoint instead. The four root causes are: guardrail breach (table exceeds the F-SKU row group or Parquet file limit), SQL-endpoint security (RLS or OLS defined at the SQL layer), non-materialised views (semantic model points to SQL views instead of Delta tables), and unsupported constructs (calculated columns or calculated tables on Direct Lake tables). This fallback behaviour only applies to Direct Lake on SQL — the original mode. Direct Lake on OneLake cannot fall back; it errors when limits are exceeded.

📅 Last verified: June 2026 ⏱ ~10 min read ✍️ A.J., Data Engineering Researcher & Technical Writer · UIG Data Lab 🔗 Source: Microsoft Learn

Two Direct Lake Modes — The Critical Distinction

Before diagnosing fallback, confirm which Direct Lake mode your semantic model uses. The two modes have fundamentally different failure behaviours, and confusing them leads to incorrect troubleshooting steps.

🔗

Direct Lake on SQL GA Nov 2023

  • Routes through the SQL analytics endpoint of a Fabric Lakehouse or Warehouse
  • Reads Delta tables via the SQL layer — not directly from OneLake files
  • Can fall back to DirectQuery when guardrails are breached, SQL-layer security is enforced, views are used, or unsupported constructs are present
  • Fallback is silent by default — reports show data but performance degrades
  • The mode described throughout this troubleshooting guide

Direct Lake on OneLake Newer

  • VertiPaq reads Delta tables directly from OneLake files — no SQL endpoint in the path
  • Cannot fall back to DirectQuery — if guardrails are exceeded or unsupported constructs are used, queries error instead of degrading silently
  • Stricter mode requiring accurate SKU sizing — but eliminates the hidden performance degradation fallback introduces
  • SQL-endpoint RLS does not apply — define RLS and OLS at the semantic model level
  • Non-materialised SQL views are not supported — must use physical Delta tables
ℹ️
How to Tell Which Mode Your Model Uses

In Power BI Desktop, open the model and check the data source connection. If the connection string includes a SQL analytics endpoint URL (contains datawarehouse.pbidedicated.windows.net or similar), it is Direct Lake on SQL. If it connects to OneLake directly without a SQL endpoint URL, it is Direct Lake on OneLake. The troubleshooting steps in this guide apply to Direct Lake on SQL. For Direct Lake on OneLake issues, investigate query errors and guardrail sizing rather than fallback behaviour.

Benchmark testing (FourMoo, January 2026) recorded median query durations of approximately 174,000 microseconds for Import mode, 247,000 for Direct Lake, and 724,000 for DirectQuery. When Direct Lake falls back to DirectQuery, query latency typically moves from the 247,000 range into the 724,000 range — a roughly 3× degradation that becomes noticeable immediately for interactive reports.

How to Detect Direct Lake Fallback

The most common reason fallback goes undetected for weeks is that the default DirectLakeBehavior setting is Automatic — the engine falls back silently and reports continue to show data. The only visible symptom is slower visuals, which teams often attribute to DAX complexity or data volume rather than the storage mode change.

Method 1 — Performance Analyzer (Power BI Desktop)

Open Power BI Desktop with the report open. Navigate to View → Performance Analyzer → Start Recording. Interact with several representative visuals — particularly the slowest ones. After refresh, expand each visual in the Performance Analyzer pane. When Direct Lake is working correctly, visual load times for simple aggregations should be under 500ms and you will see only storage engine events. When fallback is active, simple aggregations take 1–5 seconds and you will see DirectQuery events in the log. That is the confirmation.

Method 2 — DAX Studio with Server Timings

Attach DAX Studio to the semantic model via the External Tools ribbon in Power BI Desktop. Enable Server Timings (F5). Run a simple aggregation DAX query — something like EVALUATE SUMMARIZE(SalesFact, SalesFact[Year], "Total", SUM(SalesFact[Amount])). When Direct Lake is active, the trace shows storage engine cache hits and no SQL text. When fallback is active, the trace shows SQL being generated against the warehouse or lakehouse endpoint — the SQL text appears in the server timings output. This is the most precise diagnostic method.

Method 3 — Fabric Capacity Metrics App

Open the Fabric Capacity Metrics app in your workspace. Filter by time windows when users report slowness. Look for spikes in DirectQuery workload that align with those sessions. DirectQuery CU consumption during what should be Direct Lake sessions confirms that queries are routing through the SQL endpoint rather than the in-memory path.

Method 4 — Refresh History Warning

When a Direct Lake on SQL model’s source Delta tables exceed the SKU guardrails, Power BI records a warning in the model Refresh History: “We noticed that the source Delta tables exceed the resource limits of the Premium or Fabric capacity requiring queries to fall back to DirectQuery mode.” Check the semantic model’s Refresh History in the Power BI Service for this warning — it is the definitive confirmation of a guardrail-triggered fallback.

⚠️
Short DirectQuery Events Are Not Always Full Fallback

Some internal engine checks — such as edition probes, object-level security validation, and metadata reads — can generate short DirectQuery_Begin and DirectQuery_End events even when the main data query is still running in Direct Lake. Focus on events tied to long-running visual queries (over 500ms for simple aggregations) rather than sub-10ms metadata calls. Only the former indicates that report data is being served from the SQL endpoint rather than from VertiPaq.

The Four Root Causes of Fallback

SymptomRoot CauseWhy Fallback Triggers
Visuals slow on secured tables onlyRLS or OLS defined at the SQL analytics endpointThe warehouse must participate in every secured query to enforce SQL-layer security rules — routes through DirectQuery to guarantee correct row filtering
Only views are slow; physical tables are fastSemantic model targets non-materialised SQL views instead of physical Delta tablesView logic (joins, filters, computed columns) is evaluated by the SQL engine on every query — VertiPaq cannot cache view results as columnar segments
Performance degraded after data growth — refresh warning in model historyDelta table exceeds F-SKU guardrails: row groups, Parquet file count, or total rowsTables too fragmented or too large for the current SKU to frame into memory — engine routes to SQL endpoint to protect stability and serve results
Calculated columns or tables on Direct Lake tables are slowCalculated columns and calculated tables on Direct Lake tables are not supportedCalculated columns require materialisation that conflicts with Direct Lake’s schema-free approach — the engine falls back to process these via DirectQuery
Source: Microsoft Learn — Direct Lake overview · Microsoft Power BI Blog — DirectLakeBehavior

Cause 1 — Guardrail Breach

Every Fabric F-SKU has Direct Lake guardrails — limits on the number of Parquet files per Delta table, the number of row groups, and the total number of rows. When a Delta table exceeds these limits for the assigned capacity, the refresh succeeds but the engine cannot frame the table into memory. All queries against that table fall back to DirectQuery.

The guardrail values are documented in the Direct Lake overview on Microsoft Learn and vary by F-SKU (F2 through F2048). They are updated as capacities evolve — always check the current live values rather than relying on cached numbers. If a table exceeds the limits for the largest F2048 SKU, refresh fails and the model always falls back to DirectQuery.

Cause 2 — SQL-Endpoint Security

When row-level security (RLS) or object-level security (OLS) is defined at the SQL analytics endpoint of the Lakehouse or Warehouse, the warehouse must participate in every secured query to enforce those rules correctly. The engine routes those queries through DirectQuery to guarantee that security policies are applied — staying on the Direct Lake in-memory path would bypass the SQL security layer.

This is the most common cause in enterprise architectures where security is centralised at the SQL layer. The fix is to move RLS to the semantic model level — define row filters in the Power BI model rather than in the SQL endpoint. This keeps fact tables eligible for in-memory execution while still enforcing security correctly.

Cause 3 — Non-Materialised SQL Views

Direct Lake works by reading physical Delta table files from OneLake. When the semantic model targets a SQL view — even a simple one — the SQL engine must evaluate that view’s logic (joins, computed columns, filters) on every query. VertiPaq cannot cache view logic as columnar segments because views have no underlying Delta files to frame.

The fix is to materialise the view logic into a Gold Delta table using a Spark notebook, Materialized Lake View, or Dataflow Gen2 — then point the semantic model at the physical table rather than the view. See the Fabric Lakehouse Tutorial for the full Bronze-Silver-Gold pipeline pattern that produces clean Gold Delta tables.

Cause 4 — Unsupported Constructs

Calculated columns and calculated tables that reference Direct Lake tables are not supported. The engine cannot materialise these without full table scans, which conflicts with the Direct Lake architecture. Move all calculated column logic upstream into the ETL pipeline — compute in Spark or Dataflow Gen2 and write the result as a column in the Delta table itself, then access it as a regular column in the semantic model. This eliminates the calculated column trigger and gives VertiPaq a standard column it can cache as a segment.

Field note — A.J., Data Engineering Researcher

The guardrail breach cause is frequently misdiagnosed as a DAX performance problem. Teams spend days rewriting measures when the actual issue is that a fact table has 15,000 Parquet files because OPTIMIZE was never run. The Refresh History warning is the fastest way to rule out guardrail breach — check it first before looking at DAX. If you see the guardrail warning in Refresh History, no amount of DAX optimisation will fix the performance problem. The fix is Delta table compaction and either OPTIMIZE in Spark or upgrading to a larger F-SKU.

DirectLakeBehavior Property

The DirectLakeBehavior property controls what happens when a query condition triggers fallback. It has three values, each with a different trade-off between resilience and transparency.

ValueBehaviourWhen to Use
AutomaticDefault. Silently falls back to DirectQuery when any fallback condition is triggered. Reports show data at DirectQuery speed.Production workloads where user experience takes priority over performance transparency. Users never see errors — they just get slower queries.
DirectLakeOnlyReturns an error if any fallback condition is triggered. No DirectQuery fallback occurs.Development and testing environments. Set this before deploying to production to surface hidden fallback paths — an error is much easier to diagnose than unexplained slowness.
DirectLakeOrEmptyReturns an empty result rather than falling back to DirectQuery. Prevents slow queries at the cost of showing blank visuals.Scenarios where incorrect data is worse than no data — compliance-sensitive reports where DirectQuery results could bypass intended security rules.

How to Set DirectLakeBehavior

  1. Via Power BI Service web modelling (recommended)Open the semantic model in the Fabric workspace → Select the model → Model Explorer → click on Semantic model at the top level → Properties pane → Direct Lake behavior dropdown → Select the desired value. This option has been available in the web modelling experience since February 21, 2024.
  2. Via Tabular Editor v2.21.1+ using XMLA endpointConnect Tabular Editor to the semantic model via the XMLA endpoint → Select Model → Options → Direct Lake Behaviour → change from Automatic to DirectLakeOnly or DirectLakeOrEmpty. Note: after updating via Tabular Editor, the web modelling experience is no longer available for that model. This method also does not work for auto-generated default semantic models, which do not have an XMLA endpoint.
ℹ️
Use DirectLakeOnly During Development — Switch Before Release

Setting DirectLakeBehavior = DirectLakeOnly during development is the most reliable way to surface hidden fallback paths. Every view reference, calculated column, guardrail breach, and SQL-layer security issue that would silently trigger fallback in production will instead surface as an error during development — giving you a complete list of what to fix before users see the report. Switch back to Automatic before releasing to production users unless you have resolved all fallback triggers.

Fixes — How to Eliminate Fallback

Fix 1 — Compact Delta Tables (Guardrail Breach)

Run OPTIMIZE on tables that show the guardrail warning in Refresh History. OPTIMIZE compacts small Parquet files into larger ones, reduces row group count, and applies V-Order and Z-Order sorting to improve read performance for the specific filter patterns your reports use. After OPTIMIZE runs, refresh the semantic model and check whether the Refresh History warning disappears.

Spark SQL — OPTIMIZE with V-Order and Z-Order for Direct Lake performance
-- Run after each major data load or on a scheduled maintenance job
-- Replace table name, partition column, and Z-Order keys for your schema
OPTIMIZE lakehouse_gold.SalesFact
  PARTITIONED BY (YearMonth)
  VORDER
  ZORDER BY (CustomerKey, ProductKey);

-- Remove Delta versions older than 7 days after compaction
VACUUM lakehouse_gold.SalesFact RETAIN 168 HOURS;

Choose Z-Order columns that match the filter columns most commonly used in your reports — typically date keys, customer keys, and product keys. If the table still exceeds guardrails after OPTIMIZE, the only remaining options are to partition more aggressively to reduce the active partition size, or to upgrade to a larger F-SKU with higher guardrail limits.

⚠️
Guardrail Check Using Semantic Link Labs

The open-source Semantic Link Labs Python library provides a get_lakehouse_tables() function that retrieves lakehouse table properties relevant to Direct Lake guardrails and compares them against your current F-SKU limits. Run this in a Fabric notebook before and after OPTIMIZE to confirm which tables are at risk and whether compaction resolved the breach. Documentation: semantic-link-labs.readthedocs.io.

Fix 2 — Move Security to the Semantic Model (SQL-Endpoint Security)

If RLS is currently defined at the SQL analytics endpoint, move the row filters into the Power BI semantic model as standard RLS roles. Define security filters in Manage roles in Power BI Desktop or Service, mapped to Entra ID security groups. Remove the corresponding SQL-layer RLS from the Warehouse or Lakehouse SQL endpoint once the semantic model RLS is validated. This keeps the largest fact tables eligible for Direct Lake in-memory execution while enforcing security correctly at the model level.

If SQL-endpoint RLS is mandatory for compliance reasons and cannot be moved, consider separating the secured tables into a dedicated semantic model so only the reports that need those security policies pay the DirectQuery cost — leaving other reports on clean Direct Lake models.

Fix 3 — Materialise Views into Gold Delta Tables (View-Triggered Fallback)

Replace SQL views in the semantic model with physical Gold Delta tables. The transformation logic that currently lives in the view should move upstream into the ETL pipeline — write it as a Spark notebook, Materialized Lake View, or Dataflow Gen2 transformation that runs before the semantic model is refreshed. The Gold Delta table becomes a simple columnar structure that VertiPaq can frame efficiently.

Fix 4 — Push Calculated Columns Upstream (Unsupported Constructs)

Remove calculated columns from Direct Lake tables in the semantic model. For each calculated column, write the equivalent computation in the upstream ETL — a Spark transformation, a Dataflow Gen2 step, or a Materialized Lake View definition — and store the result as a regular column in the Gold Delta table. Then reference that physical column in the semantic model rather than a calculated column expression. The semantic model still uses the same data, but VertiPaq now has a standard physical column to cache rather than a computed expression that triggers fallback.

Validation Workflow After Each Fix
  • Apply one fix at a time — changing multiple things simultaneously makes it impossible to attribute improvements
  • Set DirectLakeBehavior = DirectLakeOnly after each fix — any remaining fallback path will surface as an error rather than silent degradation
  • Refresh the semantic model and check Refresh History for the guardrail warning
  • Run Performance Analyzer on the previously slow visuals — confirm DirectQuery events are gone
  • Check DAX Studio server timings for the same queries — confirm no SQL text appears for data queries
  • Switch back to DirectLakeBehavior = Automatic before releasing to users

Frequently Asked Questions

Four root causes: (1) Guardrail breach — the Delta table exceeds the row group count, Parquet file count, or total row limit for the current F-SKU. (2) SQL-endpoint security — RLS or OLS defined at the SQL analytics endpoint forces queries through the warehouse to enforce those rules. (3) Non-materialised views — the semantic model points to SQL views rather than physical Delta tables. (4) Unsupported constructs — calculated columns and calculated tables on Direct Lake tables are not supported. All four causes apply to Direct Lake on SQL. Direct Lake on OneLake cannot fall back — it errors instead. Source: Microsoft Learn — Direct Lake overview.
Direct Lake on SQL (original mode, GA November 2023) routes through the SQL analytics endpoint of a Fabric Lakehouse or Warehouse. When guardrails are exceeded or unsupported features are used, it falls back to DirectQuery transparently by default — reports still show data but are slower. Direct Lake on OneLake reads Delta files directly from OneLake without any SQL endpoint in the path. It cannot fall back to DirectQuery — if guardrails are exceeded or unsupported constructs are used, the query errors rather than degrading silently. This is a stricter mode that eliminates hidden performance degradation but requires accurate SKU sizing and careful model design. Source: Microsoft Learn.
Four methods: (1) Performance Analyzer — look for DirectQuery events alongside slow visuals in Power BI Desktop. (2) DAX Studio server timings — SQL text appearing in traces for simple aggregations confirms fallback. (3) Fabric Capacity Metrics app — DirectQuery workload spikes during user sessions. (4) Refresh History warning in the Power BI Service — the message “source Delta tables exceed the resource limits of the Premium or Fabric capacity requiring queries to fallback to DirectQuery mode” confirms guardrail-triggered fallback directly. The Refresh History warning is the fastest check for guardrail breach. DAX Studio server timings are the most precise for all other causes.
DirectLakeBehavior controls what happens when a fallback condition is triggered. Automatic (default): falls back to DirectQuery silently. DirectLakeOnly: returns an error — use this in development to surface all hidden fallback paths before release. DirectLakeOrEmpty: returns empty results rather than falling back. Set it in Power BI Service: open the semantic model → Model Explorer → click Semantic model at the top level → Properties pane → Direct Lake behavior dropdown. This option is available in the web modelling experience since February 21, 2024. Alternatively set via Tabular Editor v2.21.1+ using the XMLA endpoint — but note that doing so disables the web modelling UI for that model. Source: Microsoft Power BI Blog.
Yes. Moving RLS from the SQL analytics endpoint to the Power BI semantic model removes the SQL-layer security dependency that triggers fallback. Define row filters in Manage roles in Power BI Desktop or Service, map them to Entra ID security groups, validate they filter correctly, then remove the corresponding SQL-layer RLS from the Warehouse or Lakehouse endpoint. Semantic model RLS is enforced after VertiPaq reads the data — the fact table stays on the in-memory Direct Lake path and the security filter is applied by the model engine. Note: for Direct Lake on OneLake, SQL-endpoint RLS does not apply at all — you must define security at the semantic model level regardless of fallback concerns.
⚠ Accuracy Disclaimer

All feature descriptions and guardrail information are based on Microsoft Learn — Direct Lake overview and the DirectLakeBehavior Microsoft Power BI Blog. Guardrail limits vary by F-SKU and are updated by Microsoft as capacities evolve — always verify current values at Microsoft Learn rather than relying on cached figures. UIG Data Lab is an independent publication, not affiliated with or endorsed by Microsoft Corporation.

A.J. Data Engineering Researcher & Technical Writer · UIG Data Lab
A.J. researches and writes about data engineering, analytics architecture, Microsoft Fabric, and modern cloud data platforms. Coverage spans Microsoft Fabric, Power BI, Azure Data Engineering, Databricks, Snowflake, Apache Spark, dbt, Apache Airflow, and modern cloud data infrastructure. The focus is practitioner-level content that helps data professionals understand platform capabilities, evaluate technology decisions, optimise costs, and implement practical solutions using official documentation, product updates, community insights, and industry best practices. His writing covers real decisions from real deployments — not documentation rewrites.
Power BI Direct Lake DirectQuery Microsoft Fabric OneLake DAX Studio Delta Lake Semantic Models Performance DP-600

Burning Direct Lake Fallback to DirectQuery Questions Answered

This section covers the most searched questions about Direct Lake fallback to DirectQuery. Use it as a troubleshooting reference and as DP-600 exam revision material.

Why does Direct Lake fall back to DirectQuery in Microsoft Fabric?

Direct Lake falls back to DirectQuery when VertiPaq cannot answer a request by scanning Delta files in OneLake alone. Typical triggers are security rules in the SQL endpoint, semantic models that point to complex views, and Delta tables that exceed Direct Lake guardrails for rows, row groups, or Parquet files on the active capacity tier.

How do I know if my Direct Lake dataset is falling back to DirectQuery?

Start by capturing query traces while you refresh key visuals. If those traces show DirectQuery events with SQL text for normal report interactions, the dataset is not using pure Direct Lake for those queries, even if the model view still displays Direct Lake as the storage mode.

How do I stop Direct Lake falling back to DirectQuery on secured tables with RLS or OLS?

Move as much row-level logic as possible from the SQL endpoint into the semantic model. Keep warehouse RLS and OLS focused on small lookup tables and consider a separate dataset for highly secured data, so your main Direct Lake fact tables stay eligible for in-memory execution.

What Direct Lake guardrails cause fallback to DirectQuery and how do I stay within them?

Guardrails define upper limits on rows, row groups, and Parquet files for each table. Once a table crosses those limits for its F-SKU, the engine stops treating it as a Direct Lake candidate and sends queries through the SQL endpoint. Regularly compact files, avoid unnecessary partitions, and archive old data so active partitions sit well inside those thresholds.

How do SQL views and calculated columns trigger Direct Lake fallback to DirectQuery?

SQL views force the warehouse or lakehouse engine to evaluate joins and filters on every request. Heavy business logic left as DAX calculated columns or tables adds extra evaluation layers. Together these patterns push work from VertiPaq to the SQL engine and make Direct Lake fallback far more likely.

What is the difference between Direct Lake on OneLake and Direct Lake over SQL endpoints for fallback behavior?

Direct Lake on OneLake connects straight to Delta tables and has no SQL endpoint in the path, so it does not perform a classic switch to DirectQuery. The SQL-endpoint flavour of Direct Lake, used with lakehouses and warehouses, can choose per query between in-memory scans and SQL-based execution. Fallback discussions in documentation and blogs usually refer to this second case.

How can I use DAX Studio or traces to detect Direct Lake queries that are using DirectQuery?

Attach DAX Studio, enable server timings, and refresh one visual at a time. A pure Direct Lake query shows storage-engine activity without SQL text. If the trace includes DirectQuery Begin and SQL statements for a normal visual, that visual is running through the SQL endpoint instead.

How does the DirectLakeBehavior setting control fallback to DirectQuery?

The DirectLakeBehavior property tells the engine what to do when a query would normally fall back. Automatic allows Direct Lake fallback to DirectQuery without warnings. DirectLakeOnly blocks the query, which is ideal during testing. DirectLakeOrEmpty returns an empty result rather than a slow DirectQuery response.

How do large Delta tables and many small Parquet files impact Direct Lake performance and fallback?

Very large Delta tables with thousands of tiny Parquet files increase metadata overhead and fragment row groups. Queries then touch more files, take longer, and can cross guardrail limits. Once that happens, the engine routes requests through the SQL endpoint and performance looks like DirectQuery instead of Direct Lake.

What is the best architecture Direct Lake vs Import vs DirectQuery for large Fabric models?

A common winning pattern is to keep detailed facts as Delta in OneLake and expose them with Direct Lake. Dimensions and small lookup tables stay in Import mode when richer modeling features are needed. DirectQuery is reserved for special cases, such as external systems that cannot land in Fabric or strict real-time scenarios.

Can Direct Lake on OneLake fall back to DirectQuery, or is fallback only for SQL endpoints?

Pure Direct Lake on OneLake does not fall back to a different DirectQuery connection because there is no SQL engine in the path. Fallback behaviour described in Microsoft articles applies to Direct Lake over lakehouse or warehouse SQL endpoints, where the engine can decide to send queries down to SQL when it cannot serve them purely from OneLake.

How do composite models and remote Direct Lake semantic models affect DirectQuery fallback?

Composite models mix storage modes, so a single visual can touch Import, Direct Lake, and DirectQuery sources. When a query spans a remote Direct Lake semantic model and an external DirectQuery source, the engine may need to coordinate results through SQL, which increases the chance of DirectQuery-style execution. Keeping cross-source joins to essential scenarios helps more visuals stay in Direct Lake.

How should I tune Fabric capacity to reduce Direct Lake fallback to DirectQuery?

Use the Fabric metrics app to watch memory usage, query durations, and any guardrail warnings for key tables. If, after optimizing Delta layout, those tables still push close to limits during normal load, move to a larger F-SKU so they remain fully eligible for Direct Lake even under peak concurrency.

What known issues can cause Direct Lake models to fall back to DirectQuery unexpectedly?

Microsoft publishes known issues where Direct Lake models may fall back after specific actions, such as query cancellation or rare security configurations. When fallback appears without an obvious architectural reason, review the current known-issues list to check whether a platform bug, hotfix, or temporary mitigation explains the behaviour.

How can I monitor Direct Lake fallback to DirectQuery over time in the Fabric metrics app?

Track semantic model workload charts and filter them for DirectQuery activity. Correlate those spikes with user sessions and with specific datasets that should run in Direct Lake. Over time this pattern highlights which models and tables most often trigger fallback, so you can focus optimization and capacity upgrades where they provide the most benefit.

Keep Learning About Direct Lake and Fabric

Use these in-depth guides to fix root causes of fallback and design faster Microsoft Fabric solutions.

Scroll to Top