Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Hello,
It seems that update a record in a table takes much longer in Fabric. And we do several of such updates in our datawarehousing procedures. Does someone know why?
Running the following query (which is part of a bigger procedure) in Fabric takes 0.4 seconds. And 0.4 seconds is a lot more time for such a simple query. We are using an F8 capacity
update MDA_WH.mdahub.process
set ind_instance_running = 'Y'
,utc_record_last_updated = getutcdate()
where 1=1
and cod_process = @cod_processThis data was derived from the 'queryinsights.exec_requests_history' table and is shown below, next to a similar query that too 0.34 seconds to execute.
But a similar query takes 0.016 seconds in AzureSQL (20v Cores in AzureSQL db). So it takes more than 20 times in Fabric!
Thanking you in advance.
Gr,
Manish Bundhun
Solved! Go to Solution.
Hi @ManishBundhun ,
Thank you @suparnababu8 for the helpful response!
Thanks for sharing your concern. The performance difference between Fabric (F8) and Azure SQL (20 vCores) mainly comes down to architecture.
Fabric is built for analytics, while Azure SQL is optimized for fast transactional updates. Fabric dynamically allocates resources, which can add some overhead: less noticeable for large queries but more so for frequent updates.
If updates are frequent, you might see better performance by batching them or handling them in Azure SQL before syncing to Fabric.
Refer the links here: Batching ,copy-performance
Hope this resoolved your query.If so, consider accepting it as solution to help others to find it qickly.
Regards,
Pallavi G.
See: Solved: Re: Slow Update Query on Dimension table with only... - Microsoft Fabric Community
Calling GETUTCDATE() in an update statement doesn't seem to perform well. If you store the current date in a variable first, it will perform much better.
Hi @ManishBundhun ,
I wanted to check in on your situation regarding the issue. Have you resolved it? If you have, please consider marking the reply that helped you or sharing your solution. It would be greatly appreciated by others in the community who may have the same question.
Thank you
It dependes on several factors.
Now days Micorosft people are imprving the performance of all services in Fabric environment.
if you need more info pls visit below links. It might helps you.
Troubleshoot the Warehouse - Microsoft Fabric | Microsoft Learn
Warehouse performance guidelines - Microsoft Fabric | Microsoft Learn
Thank you 🙂
Did I answer your question? Mark my post as a solution!
Proud to be a Super User!
Hello,
Thank you for your response.
In Fabric we use have the F8 CU and in azuresql db, we have 20vcores.
If Fabric is this inefficient compared to AzureSQL, then it makes it much less attractive for datawarehousing, especially given when Fabric compute capacity is used per second.
Gr,
Manish
Hi @ManishBundhun ,
Thank you @suparnababu8 for the helpful response!
Thanks for sharing your concern. The performance difference between Fabric (F8) and Azure SQL (20 vCores) mainly comes down to architecture.
Fabric is built for analytics, while Azure SQL is optimized for fast transactional updates. Fabric dynamically allocates resources, which can add some overhead: less noticeable for large queries but more so for frequent updates.
If updates are frequent, you might see better performance by batching them or handling them in Azure SQL before syncing to Fabric.
Refer the links here: Batching ,copy-performance
Hope this resoolved your query.If so, consider accepting it as solution to help others to find it qickly.
Regards,
Pallavi G.
On a slightly different note,
If a fabric query takes 0.401 allocated CPU time in seconds, is this considered as 0.401 in the capacity unit second total or is this rounded to some number?
Hi @ManishBundhun ,
Thank you for the follow-up! We would be happy to assist you.
In Microsoft Fabric, capacity is billed based on actual usage measured in Capacity Unit (CU) seconds, tracked with high precision.No rounding to whole seconds like 1 second.
For your query with 0.401 seconds of allocated CPU time on an F8 capacity, it wouldn’t simply be billed as 0.401 CU seconds.
This per-second billing model is indeed an advantage of Fabric, offering granular and cost-effective usage compared to traditional hourly billing systems. To confirm the exact CU seconds for your query, you can check the Microsoft Fabric Capacity Metrics app, which logs precise consumption details.
Aslo please refer the documents below:
https://learn.microsoft.com/en-us/fabric/database/sql/usage-reporting
https://learn.microsoft.com/en-us/fabric/enterprise/buy-subscription
If this helps,mark it as 'accept as solution'
Thank you for being a member of Microsoft Fabric Community Forum!
Regards,
Pallavi.
Experience the highlights from FabCon & SQLCon, available live and on-demand starting April 14th.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 14 | |
| 7 | |
| 6 | |
| 5 | |
| 5 |
| User | Count |
|---|---|
| 25 | |
| 23 | |
| 14 | |
| 12 | |
| 9 |