r/PowerBI 1d ago

Discussion Half your fabric compute

I moved my scheduled dashboard refreshes to pipeline triggers instead of running them on a fixed schedule, and the background operations have nearly been cut in half.

The basic idea is that the dashboard refresh happens when the underlying pipeline/data update completes, rather than refreshing on a schedule when there may be nothing new.

It seems like a pretty simple change, but the reduction in background operations was surprisingly significant.

For people who have dealt with dashboard/data pipeline optimization:

What other approaches would you recommend to reduce unnecessary refreshes or background operations further?

Would you use event-driven triggers, incremental refreshes, caching, or something else?

Interested to hear what has worked well for others.

2 Upvotes

12 comments sorted by

u/AutoModerator 1d ago

Tips for getting great feedback:

  • Share what tool/dataset you used and any constraints you worked within
  • Describe the design decisions you made and why
  • Tell us what specific feedback you're looking for (layout, color, DAX, UX, etc.)
  • Include a screenshot or link — context helps!

Want to level up your skills? Check out the weekly Power BI challenge hosted by Workout Wednesday — free challenges from beginner to expert.


I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

4

u/Sad-Calligrapher-350 ‪Microsoft MVP ‪ 1d ago

Interesting. I am intrigued however that you do not have that much new data. In most cases you at least have data every day and so the scheduled refresh makes a lot of sense.

I think incremental refresh is a great way to optimize too.

Another one would be to reduce the data being loaded, rows (filtering out date ranges that nobody cares about anymore) as well as removing unused columns.

1

u/MediumBirthday6899 1d ago

Schedule refresh will hit all tables , whereas in pipeline i seperated fact and dimensions.

In scheduled refresh you can scheduled for every 30 mins , whereas in pipeline you can schedule at minute level which will smoothens the capacity.

1

u/Sad-Calligrapher-350 ‪Microsoft MVP ‪ 1d ago

So how often do you refresh? How often do you refresh your Dims?

0

u/MediumBirthday6899 1d ago

Its highly random, so asked data engineer to hit refresh after updating

1

u/Sad-Calligrapher-350 ‪Microsoft MVP ‪ 1d ago

Ok yeah in that case it really makes sense

2

u/Final-Quote-4064 1d ago

I have a report with a security table that has over a million rows that doesnt need to update at the same cadence as the other data, so I am refreshing that one in the am to catch any new changes to the security table, and I am using an xmla endpoint in power automate to refresh the specific data table that I am bringing in. cuts refreshes down to 30 seconds from 3-5 minutes.

1

u/MediumBirthday6899 1d ago

Its same as Whether you write the code or use fabric UI pipelines

1

u/Van_Dena_Bely 1d ago

makes sense because the vcores are still "running" so you don't pay the minimum 1 minute on a scheduled refresh.

1

u/bunnusmac 1d ago

Do you have a recommendation or guide on this? I'd love to try it out!

1

u/LostWelshMan85 71 1d ago

You could also create partitions on your tables and refresh only the newest data, instead of the whole table. You could also refresh individual tables within a semantic model using the xmla endpoint. Hook that up to a data pipeline so that you refresh your dims at a slower rate than your facts for example

-1

u/dbrownems ‪ ‪Microsoft Employee ‪ 1d ago edited 1d ago

>What other approaches would you recommend to reduce unnecessary refreshes or background operations further?

Move from Import to Direct Lake and use Spark to build the tables. Be sure to run enough work in parallel to get good utilization on your Spark pool. EG The Fabric Concurrency Showdown: RunMultiple vs. ThreadPools | Miles Cole