Calculation group
A calculation group applies one DAX pattern to every measure in your model. You write YTD, MTD and YoY% once instead of repeating them for e...
Read definitionDirectQuery is a storage mode in Power BI and Fabric that keeps no copy of the data and instead sends every query straight to the source. You get live data, but you hand the performance of your reports over to that source.
DirectQuery is a storage mode for Power BI models in which the data never lives inside the model itself. Every time a user opens a report or changes a filter, Power BI translates the visual into a query in the source's language (typically SQL) and sends it live to the database. The result comes back and renders in the visual.
The alternative is called Import: during a refresh Power BI copies the data into its in-memory engine (VertiPaq) and keeps it there. Queries then run against that fast, compressed copy.
Picture DirectQuery as a live interview with an expert: every answer is fresh, but you depend on how quickly that expert responds. Import is like a book you wrote in advance with answers to the most common questions: lightning-fast lookups, but only as current as the last edition.
Near real-time data needed. Production lines, inventory, trading positions, SLA dashboards. When data older than ten minutes is already too old, Import is off the table.
Very large datasets. Tables with billions of rows that do not fit in a Power BI capacity's memory. DirectQuery leaves the data at the source and only fetches what each visual needs.
Strict governance at the source. When the source database is the single source of truth and no copies are allowed, DirectQuery keeps everything in place.
Frequently changing data. A refresh every 30 minutes costs more than DirectQuery when users only check a handful of times per day.
Regulation and audit. Some sectors require reports to run live on the source, with every query logged at the source.
The most frequent question when building a new Power BI model.
Import almost always wins. The VertiPaq engine is tuned for analytical queries on in-memory columnar data and often delivers sub-second responses on hundreds of millions of rows. DirectQuery relies on the source, and the source is rarely as fast as VertiPaq. For classic BI dashboards, Import is the default.
DirectQuery wins. You see the data as it currently exists in the source, without waiting for a refresh.
Import supports everything Power BI can do: all DAX functions, all visuals, full time intelligence. DirectQuery has limitations: not every DAX function works, Quick Insights is disabled, and visual rendering is only as quick as the source.
DirectQuery wins on extreme volumes. Import is bounded by your Power BI capacity memory (usually a few GB compressed). DirectQuery has no such ceiling.
Import consumes Power BI capacity during refresh. DirectQuery uses no refresh capacity, but continuously loads the source database. Every user interaction is another round trip.
Pick Import unless you have an explicit reason to use DirectQuery. Very large datasets, very fresh data, or governance that forbids copies. In all other cases Import simply delivers faster reports.
Since Power BI introduced composite models, you can mix tables in different modes within a single model.
A fact table in DirectQuery (billions of transactions) linked to dimension tables in Dual mode (customers, products, dates). Dual mode lets the engine pick, per query, whether to use the Import copy or the DirectQuery version.
Composite models are the norm today for enterprise scenarios that need live data plus fast interactivity. They also show up in Microsoft Fabric, where a semantic model can seamlessly mix lakehouse tables (DirectLake) with imported data.
Fabric introduced a third mode: DirectLake. It reads Delta tables straight from OneLake as if it were Import data, skipping the refresh step. Performance feels like Import without the historical delay and without the refresh schedule limitation. For Fabric-native reporting, DirectLake is often the best choice, with DirectQuery left as a fallback for sources outside OneLake.
A source that does not scale
A Power BI report with a thousand users generates a thousand times more queries against your operational database. Without a dedicated read replica or cube layer, you can bring the OLTP system down.
Query folding that breaks
DirectQuery relies on Power BI being able to translate every interaction into the source. Some transformations in Power Query break that translation. Avoid custom M functions and exotic data types.
Slow visuals
A page with ten visuals can fire ten queries on every filter change. Use Apply filter buttons, limit visuals per page, and configure a query reduction strategy.
Limited DAX set
Some time intelligence, iterator functions, and more complex patterns do not work or work poorly in DirectQuery. Check early which measures you need and whether they are supported.
Source must always be online
An Import report keeps working while the source is down. DirectQuery simply stops. Plan for maintenance windows and failover.
A calculation group applies one DAX pattern to every measure in your model. You write YTD, MTD and YoY% once instead of repeating them for e...
Read definitionChange Data Capture (CDC) is the practice of detecting every change in a source system and forwarding it to downstream systems. It keeps you...
Read definitionData mesh is an organisational model for data in which each business domain owns its datasets and offers them as products. It breaks with th...
Read definitionA data warehouse is a central database that collects data from many source systems and structures it for reporting and analysis. It's optimi...
Read definitionDAX is the formula language behind Power BI, Excel Power Pivot and Analysis Services. You use it to build calculations like totals, margins ...
Read definition
Ten practical steps to automate your business processes without AI hype. Start small, fix the process first, use the tools you already own, ...
Simple guide to set up version control for Power BI using PBIP, Git and clean repo structures. Learn branching, deployments and safe AI work...