Search…

DAX and Data Modeling

Import vs Direct Query in Power BI: Here’s What You Need to Know (2026)

Import vs Direct Query in Power BI: Here’s What You Need to Know (2026)

Import copies data into Power BI's engine for speed, DirectQuery queries the source live. One comparison table and when to choose each mode.

Import copies data into Power BI's engine for speed, DirectQuery queries the source live. One comparison table and when to choose each mode.

Written By: Sajagan Thirugnanam

Last Updated on September 23, 2026

Import mode copies your data into Power BI's in-memory engine, which makes reports fast but only as fresh as the last refresh. DirectQuery sends a live query to your source every time a reader interacts with a visual, so the data stays current but report speed depends on the source. Default to Import unless you have a specific reason the data needs to be live.

What Import mode does

Import mode brings a copy of your data into the Power BI model. There is no live connection to the source once the copy is loaded; visuals read from Power BI's own compressed, in-memory storage. This is why Import reports are usually the fastest to interact with. The cost is that data goes stale between refreshes, so you need a scheduled or manual refresh before every use.

What DirectQuery does

DirectQuery keeps no copy of the data in Power BI. Every filter, slicer change, or click on a visual sends a new query to the source system, and the result is calculated there rather than pre-processed in Power BI. This keeps the report current without a refresh schedule, at the cost of depending on the source database's own performance for every interaction.

By default, a DirectQuery visual returns at most 1,000,000 rows per query. A visual whose result would exceed that limit shows a warning instead of the full result, so DirectQuery reports built on very large tables usually need aggregation or filters built into the visual rather than relying on the raw table.

Import vs. DirectQuery

Factor

Import

DirectQuery

Data freshness

As of the last refresh

Live, every interaction queries the source

Report speed

Fast; data is cached in memory

Depends on the source system and network

Dataset size

Limited by model memory

Not stored in Power BI, so very large sources are workable

DAX and modeling

Full support for measures, calculated columns and transformations

Several DAX functions and calculated columns are restricted

Refresh needed

Yes, scheduled or manual

No

Row limit per query

None beyond model size

1,000,000 rows by default

When to choose each mode

  • Choose Import when the report can tolerate a scheduled refresh, needs complex DAX or heavy transformations, and the source data fits within your capacity's memory limits. This is the right default for most reports.

  • Choose DirectQuery when the source changes by the minute and the report must reflect that without a refresh, such as an operational dashboard on a live order system, or when the source table is too large to import at all.

  • Combine both with a composite model. Keep small, slow-changing dimension tables such as Customer or Product in Import mode, and connect a large, fast-changing fact table with DirectQuery. This balances speed against freshness instead of forcing one mode on the whole model.

Direct Lake, a third mode in Microsoft Fabric

Microsoft Fabric adds a storage mode called Direct Lake for semantic models built on a Fabric lakehouse or warehouse. It reads Parquet files directly from OneLake without importing a copy and without sending a query to a source database on every interaction.

It sits between the other two modes: near-Import speed with data that reflects what is in the lakehouse, without a refresh step. It only applies to Fabric-backed sources, so it does not replace Import or DirectQuery for a model built on Excel files or an on-premises database.

Modeling still matters either way

Whichever mode you choose, the shape of your model affects performance. A star schema keeps both Import and DirectQuery reports faster than a flat, denormalized table; see our star schema vs. snowflake schema guide. If you import large fact tables, incremental refresh keeps refresh times down by only reloading the rows that changed. And if a report already feels slow regardless of mode, our troubleshooting guide walks through finding the actual bottleneck before you change storage mode at all. Our performance optimization guide goes deeper into fixing what you find.

FAQs

Which is faster: Import or DirectQuery?

Import, in nearly every case, because visuals read from data already cached in memory rather than waiting on a query to the source. DirectQuery speed depends entirely on how well-tuned the source system is; a well-indexed warehouse under light load can feel close to Import, but a busy or poorly indexed source will feel slow on every click.

Can you use DAX in DirectQuery?

Yes, but some DAX functions and calculated columns are restricted or unavailable, particularly functions that would require scanning the full table locally. Import mode supports the full DAX surface. Check a specific function's documentation if you are unsure whether it works in DirectQuery before building around it.

Sources

Related to DAX and Data Modeling

Want Power BI expertise in-house?

Get in Touch With Us

Turn your team into Power BI pros and establish reliable, company-wide reporting.

Berlin, DE

powerbi@casewhen.co

Follow us on

© 2026 CaseWhen Consulting
© 2026 CaseWhen Consulting
© 2026 CaseWhen Consulting