Whenever there is a significant lag in refreshing a Power BI report, even for slight changes with the source data, a number of factors could be in play. The refresh intervals in Power BI depend on the nature of the data connections, the queries and transformation designs, and the configuration of the data model. Some of the underlying reasons and the measures that can be taken to tackle the issue of slow refreshes are explained below.
Queries and Data Connections are Inappropriate: Large data sources can result in large or complicated data-sourcing queries that would compromise the refresh rates. Also, connecting directly to external databases may create round-trip delays, especially if every query executed by Power BI needs to be completed one at a time. In this case, it may be advisable to apply the incremental refresh, whereby only the newly added or changed information is refreshed, instead of carrying out a full new refresh. DirectQuery is ideal for situations that require up-to-the-minute changes in information. This, too, may have its limitations, though. In the case of large datasets, it is best to use query folding (letting Power Query push down the transformations into the data source) as it greatly improves refresh rates.
Power Query Advanced Data Transformations: In cases where the Power Query steps include complex transformations like join/merge, the addition of custom columns, etc., this may adversely affect refresh timings especially if they are not optimized. You should simplify and optimize your M code in Power Query as much as possible. For instance, do not retain irrelevant columns at the last stage, ensure that data is filtered out at the source level wherever possible, and do not include steps that apply transformations to the whole dataset more than once. It is also possible to make the data processing in Power BI mode more economical by dividing complex transformations into simple ones and, instead of using many simple transformations in one query, using several queries.
Excessively Loaded Data Model and DAX Formulas: The presence of heavy data models in terms of too many tables, relationships, or calculated columns also affects refresh performance. Optimize your model by cutting out nonfunctional columns, tables, or relationships and retaining only the pivotal ones. Many measures are generally time-consuming, particularly if they include complex DAX interactions, which I calculated columns instead of measures as the logic dictates. It is advisable to use measures instead of calculated columns wherever possible due to the fact that measures are dynamic and are computed only when needed.
Using these techniques should help improve the Power BI report refresh time so that displacing factors might be possible whenever minimal changes are made to the source. It may also be worth trying to gauge the effect of each adjustment separately.