Hi Abhishek Tiwari,
The sudden increase in your Power BI dataset refresh duration to several hours strongly suggests a resource bottleneck rather than a structural issue. Since the performance degraded recently without major model changes, we first need to determine if your Power BI Premium or Fabric capacity is experiencing compute exhaustion. I recommend accessing the Fabric Capacity Metrics app within your tenant to review CPU and memory utilization specifically during your scheduled refresh windows. If the capacity is routinely exceeding its allocated limits, the Microsoft backend will intentionally queue and throttle refresh operations to protect overall tenant stability. Distributing your scheduled refreshes across non-peak hours can immediately alleviate this queuing behavior and restore faster processing.
If your capacity metrics appear normal and throttling is not occurring, the next step is to isolate specific dataset bottlenecks using the workspace XMLA endpoint. By connecting to the workspace via SQL Server Management Studio, you can run a SQL Server Profiler trace against the Analysis Services engine while a manual refresh is active. This allows you to monitor internal processing steps in real-time to see precisely which table or transformation is hanging. Often, sudden degradation is caused by a backend data source change that breaks query folding, forcing the service to pull massive amounts of raw data into memory to perform transformations locally instead of efficiently pushing the processing down to the source database.
If your dataset relies on on-premises data sources, the latency might be occurring at the network boundary. You should examine the server hosting the on-premises data gateway for CPU and memory exhaustion. Reviewing the gateway diagnostic logs, specifically the files located at %localappdata%\Microsoft\On-premises data gateway\Gateway.log, will help determine if a saturated network connection or overloaded server is choking data throughput to the cloud. You can also monitor the QueryExecutionReport.json file in that same directory if performance logging is enabled to track the exact execution time of the queries being sent to your local servers.
Hope this answer brought you some useful information. If it did, please hit “accept answer”. Should you have any questions, feel free to leave a comment.
VP