Forum Discussion
DAX Engine Changes in Power BI Desktop October 2024 Update?
Hi,
I ran a DAX Query in DAX Studio connected to Power BI Desktop September 2024 (or earlier) version. In DAX Studio it showed callbacks of type CallBackDataID in the Server Timings tab, as expected, originating from a SUMX(Table,IF(...)) measure implementation.
Now, running the same query connected to Power BI Desktop October 2024 version and unchanged DAX Studio version, performance is about the same, but the Server Timings tab don't show callbacks anymore. All queries, with old and new Power BI Desktop version were run with cleared cache.
Does anyone know what has been changed exactly in the SSAS engine in the October 2024 version? Either it changed what is logged to DAX Studio, or it changed how the workload is ditributed between formula engine and storage engine. My impression is that the tables are first loaded into formula engine and then all iterating is done in the formula engine now, removing the need for callbacks. But I didn't analyze the queries in detail yet, so this is just a quick guess.
Kind regards,
Martin
I'm not sure but I've reached out to Jay on socials to see if he knows.
Don't know his handle on here.
2 Replies
- KNP
Super User
I'm not sure but I've reached out to Jay on socials to see if he knows.
Don't know his handle on here.
- Martin_D
Solution Sage
Hi KNP ,
Thank you for your support. I just tried to reproduce this behaviour on a machine with the old Power BI Dektop version. Maybe I did a change in my code the caused my obersvation, not the update that I did at about the same time.
This code still translates into a query using callbacks:DEFINE ---- MODEL MEASURES BEGIN ---- MEASURE FactOnlineSales[Large Sales LC] = SUMX ( 'FactOnlineSales', IF ('FactOnlineSales'[SalesAmount] >= 50, 'FactOnlineSales'[SalesAmount] ) ) ---- MODEL MEASURES END ---- EVALUATE SUMMARIZECOLUMNS ( 'DimDate'[CalendarYear], "Large Sales LC", [Large Sales LC] )Whereas this code does not translate into a query using callbacks:
DEFINE ---- MODEL MEASURES BEGIN ---- MEASURE FactOnlineSales[Sales LC] = SUM ( 'FactOnlineSales'[SalesAmount] ) MEASURE FactOnlineSales[Large Sales LC] = SUMX ( 'FactOnlineSales', VAR _Sales = [Sales LC] RETURN IF ( _Sales >= 50, _Sales ) ) ---- MODEL MEASURES END ---- EVALUATE SUMMARIZECOLUMNS ( 'DimDate'[CalendarYear], "Large Sales LC", [Large Sales LC] )Interesting: The callback solution runs 167 ms, the non-callback solution ran 24894 ms. Optimized code ran 40ms. So you can mess up even further by getting rid of the callback solution 😀
Kind regards,
Martin