100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Data Refresh

Understand how Power BI keeps report data current through scheduled, incremental, and real-time refresh strategies, and the role of the on-premises data gateway.

Data ModelingIntermediate9 min readJul 10, 2026
Analogies

Why Refresh Matters

A Power BI report built on Import mode holds a static snapshot of data compressed into the VertiPaq engine at the moment the .pbix file was published or last refreshed; without a refresh, every visual keeps showing that same frozen snapshot no matter how much the underlying source data changes. Refresh is the process — triggered manually, on a schedule, or via API — that re-runs every Power Query step against the live source and reloads the resulting tables into the semantic model, which is what keeps dashboards showing current numbers rather than stale ones.

🏏

Cricket analogy: This is like a printed newspaper's match report from yesterday's game: however exciting today's live match is, the print edition on your table keeps showing yesterday's frozen scoreline until the next edition is printed.

Scheduled Refresh and the Data Gateway

In the Power BI Service, Scheduled Refresh lets you configure up to 8 refreshes per day on shared capacity (more on Premium or Fabric capacity) for a published dataset, specifying exact times and a time zone; each scheduled run re-executes the full Power Query pipeline against the source and reloads the model. When any source lives inside a private network — an on-premises SQL Server, a local file share, or an internal API — the cloud-based Power BI Service can't reach it directly, so an On-Premises Data Gateway, installed on a machine inside that network, acts as a secure relay that receives refresh requests from the cloud and executes them locally before sending results back.

🏏

Cricket analogy: This is like a stadium's internal PA system that only ground staff can access directly; a broadcast van outside relays commentary requests to a technician inside who retrieves the announcement and sends it back out to the world feed.

powerquery-m
// Parameters commonly used to control refresh scope, e.g. combined with RangeStart/RangeEnd
// for incremental refresh filtering on a fact table's date column.
let
    Source = Sql.Database("salesdb.company.com", "Sales"),
    Orders = Source{[Schema="dbo", Item="Orders"]}[Data],
    FilteredByRange = Table.SelectRows(
        Orders,
        each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd
    )
in
    FilteredByRange

The gateway can run in Personal mode (for a single user's own scheduled refreshes) or Standard mode (a shared, centrally managed gateway cluster that an organization's admins configure once for many datasets and many users), and Standard mode is the recommended choice for any production reporting environment.

Incremental Refresh and DirectQuery Alternatives

For very large fact tables, refreshing every historical row on every schedule is wasteful; Incremental Refresh solves this by defining a policy — using the RangeStart and RangeEnd parameters — that partitions the table by date, only reprocessing a recent rolling window (say, the last 10 days) while leaving older, unchanged historical partitions untouched, dramatically cutting refresh time and gateway load. An entirely different approach is DirectQuery, where Power BI stores no data at all and instead sends a live query back to the source database every time a visual is opened or a filter changes, trading the speed of an in-memory Import model for always-current data with no scheduled refresh needed at all.

🏏

Cricket analogy: Incremental refresh is like a stats service only re-verifying today's match data nightly instead of re-checking every match ever played, while DirectQuery is like a live scoreboard querying the stadium's official system on every single ball rather than storing any history at all.

DirectQuery trades import-model speed for freshness: every visual interaction sends a new query to the source, so poorly indexed source tables or complex DAX can make reports feel sluggish. Test DirectQuery performance against realistic data volumes and concurrent users before committing a production report to that mode.

  • Import-mode reports show a static snapshot that only updates when a refresh actually runs.
  • Scheduled Refresh in the Power BI Service re-executes the full Power Query pipeline at configured times.
  • An On-Premises Data Gateway relays refresh requests securely to sources located inside a private network.
  • The gateway can run in Personal mode for individual use or Standard mode for shared, centrally managed refreshes.
  • Incremental Refresh partitions large fact tables by date, reprocessing only a recent rolling window on each run.
  • DirectQuery stores no data locally, querying the source live on every interaction for always-current results.
  • DirectQuery trades import-model speed for freshness and should be performance-tested before production use.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#PowerBIStudyNotes#DataRefresh#Data#Refresh#Matters#Scheduled#StudyNotes#SkillVeris#ExamPrep