Skip to content

Power BI

Power BI incremental refresh for large tables

How Power BI incremental refresh works, what it needs from the source, how to choose the window, and why a refresh can still process every partition.

Talha Ansari··5 min read

Key takeaways

  • Incremental refresh partitions a table by date and reprocesses only the recent window.
  • RangeStart and RangeEnd must be DateTime parameters used in a date filter in the source query.
  • If the filter does not fold, the engine may read the full table and lose the benefit.
  • The first refresh loads the full archive, and republishing can reset partitions.
On this page

What incremental refresh does

Incremental refresh splits a table into partitions by a date range. On refresh, Power BI processes only the partitions that fall inside the refresh window instead of reloading the whole table. Older partitions stay in the model untouched and are eventually merged or removed as the window rolls forward.

It does not reduce the size of the model. It reduces the work and time needed to refresh. The first refresh still loads the full archive, so plan for a longer initial run and a source that can handle it.

The three requirements

The source query must filter on two parameters, RangeStart and RangeEnd, and both must be DateTime. The filter must be on a date or datetime column in the source, and the table must be published before the service can create partitions.

  • RangeStart and RangeEnd are case-sensitive DateTime parameters, not date parameters.
  • Both parameters filter the same date column, with start inclusive and end exclusive.
  • The filter step folds to the source; otherwise every refresh may read the full table.
  • Do not reference the parameters elsewhere in the query or rename them after the policy is set.
  • The date column should be stable and non-null for every row.

Choose the window

The archive window is how far back the model keeps data. The refresh window is how far back each refresh reprocesses. A common pattern is several years of archive and a short refresh window that covers late-arriving records.

Make the refresh window longer than the longest expected delay. If an invoice can arrive three days after its transaction date, a two-day window will miss corrections. If the source backfills a month, the window must be at least a month.

As an illustration, three years of daily rows is about 1,095 days. A ten-day refresh window covers roughly 1 percent of that history, so the saving comes from the rows read, not from a smaller model.

Incremental refresh settings
SettingMeaningPractical starting point
Archive windowHow much history is keptCover the reporting range plus one comparison period
Refresh windowHow much is reprocessed each runLonger than the worst late-arrival delay
Detect data changesRefresh only partitions whose source data changedUse when the source has an audit column and the extra query cost is acceptable
Partition granularityDay, month, quarter, or yearMatch the refresh frequency and data volume

Check query folding

Incremental refresh relies on the source doing the date filtering. In Power Query, select the filter step and use View Native Query. If the option is unavailable, the step is not folding and the refresh may download more data than expected.

Folding breaks when a step uses a custom function, an unsupported transformation, or a calculated column before the filter. Move the date filter as early as possible, keep the source query simple, and avoid changing column types before the filter if that blocks folding.

For file-based sources and some services, folding is not available. The query can still be configured, but the mashup engine may apply the filter after retrieving all rows, which defeats the purpose. Measure the actual refresh duration rather than assuming the window is doing the work.

Operate and troubleshoot

Watch refresh duration and failure messages for the first few runs. A refresh that suddenly processes all partitions usually points to a broken fold, a parameter change, or a full-refresh request. Republishing the model from Desktop resets partitions and data, so treat a republish as a full deployment rather than a routine update.

  • The initial refresh processes every partition; schedule it outside peak hours.
  • A schema change may require a full refresh; existing partitions do not always pick up a new column.
  • Time zone differences between the source and the service can shift partition boundaries; use a consistent convention.
  • A gateway that cannot run the partition queries will fail the refresh; test with the same gateway.
  • After changing the window, confirm that the published policy matches the model.

When not to use it

Small tables do not benefit. A dimension with a few thousand rows reloads faster than the overhead of partitioning. Tables without a reliable date column, or sources that cannot filter efficiently, are also poor candidates.

If the requirement is near-real-time data, incremental refresh is the wrong tool; it is still a scheduled batch. Use DirectQuery or a real-time partition when freshness matters more than model performance, and accept the trade-off in query speed and source load.

Frequently asked questions

Does incremental refresh work in Power BI Desktop?+

You configure the policy in Desktop, but the partitioning happens when the model is published and refreshed in the service. Desktop refreshes the full table for authoring.

Does incremental refresh reduce the model size?+

No. It reduces refresh work. The model still holds every partition in the archive window, and the archive window determines its size.

Can incremental refresh be used with DirectQuery?+

The standard feature is designed for import tables. DirectQuery queries the source at report time, so there is no stored partition to refresh. Hybrid tables are a separate pattern with their own constraints.

Why did every partition refresh?+

Common causes are a broken query fold, a changed parameter, a schema change, or a manual full refresh. Check the refresh history and the native query first.

Need help applying this?

Get help with Dashboards & BI.

Review the service scope or tell us what you are trying to improve. We will reply with a clear next step.

Free KPI definition template

Related reading