What Is DirectQuery vs Import in Power BI?
Power BI offers two main ways to connect a report to its data: Import mode and DirectQuery mode. Import mode loads a copy of the data into Power BI’s in-memory engine, so reports run against that local copy. DirectQuery leaves the data in the source system and sends a query back to it every time a visual needs data. The choice shapes report speed, data freshness, and how much data a model can hold, which makes it one of the first decisions when building a Power BI semantic model.
How Import Mode Works
In Import mode, Power BI pulls the data from the source and compresses it into the VertiPaq in-memory engine inside the model. Because the data sits in memory, queries are fast and the full set of DAX and modeling features is available. The trade-off is freshness and size. The data is a snapshot from the last refresh, so it is only as current as the most recent scheduled refresh, and the model has to fit within memory limits. For most reporting, where data refreshed a few times a day is fine, Import mode gives the best performance.
How DirectQuery Mode Works
In DirectQuery mode, Power BI stores no data. Each time a user interacts with a visual, Power BI translates the action into a native query, often SQL, and sends it to the source database, which returns just the rows needed. This keeps reports current to the second and removes the model size ceiling, since the data never leaves the source. The cost is speed and load: every click hits the source, so report responsiveness depends on how fast that database answers, and a busy report can put real pressure on the source system. Some DAX functions are also restricted in DirectQuery.
DirectQuery vs Import: How to Choose
Import is the default choice and the faster one for the large majority of reports. Reach for DirectQuery when the data is too large to fit in memory, when reports must reflect changes in near real time, or when policy requires that data stay in the source system rather than being copied into a model. Many teams do not pick one mode for the whole model. A composite model can set some tables to Import and others to DirectQuery, and aggregations can keep a fast in-memory summary on top of a DirectQuery detail table. The practical rule: start with Import for speed, and use DirectQuery only for the tables that genuinely need it.
Choosing a Storage Mode on a Governed Data Foundation
The storage-mode decision is easier when the data underneath the model is already clean, modeled, and fast to query. When reports point straight at raw ERP tables, DirectQuery can be slow and Import refreshes can be heavy. QuickLaunch builds governed data foundations for JD Edwards, Vista, NetSuite, and OneStream with pre-built semantic models and a performance-minded data layer, so enterprise Power BI reports run fast in Import mode and DirectQuery stays responsive where it is needed. Storage mode becomes a tuning choice rather than a workaround for slow source data.
Frequently Asked Questions
What Is the Difference Between DirectQuery and Import in Power BI?
Import loads a compressed copy of the data into Power BI’s in-memory engine for fast reports, refreshed on a schedule. DirectQuery leaves the data in the source and queries it live, so reports are always current but depend on the source database’s speed.
Is DirectQuery Slower Than Import?
Usually, yes. Import data sits in memory and answers almost instantly, while DirectQuery sends a query to the source for every visual, so its speed depends on the source system. Import is faster for most reporting; DirectQuery is for cases that need live data or very large datasets.
When Should I Use DirectQuery Instead of Import?
Use DirectQuery when the dataset is too large for memory, when reports need near real time freshness, or when data must stay in the source for governance reasons. Otherwise Import is the better default for performance.