Тёмный

Formula engine and storage engine in DAX 

SQLBI
Подписаться 109 тыс.
Просмотров 23 тыс.
50% 1

Understanding the differences between the formula engine and the storage engine is the first step to understand the performance metrics and optimize a DAX formula.
Article and download: sql.bi/684038?...
How to learn DAX: www.sqlbi.com/...
The definitive guide to DAX: www.sqlbi.com/...

Опубликовано:

 

1 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 37   
@gulhermepereira249
@gulhermepereira249 3 года назад
I'm a simple PBI developer, I see Maco Russo, I click like
@samdasari7863
@samdasari7863 3 года назад
This is by far the most innovative technical video I have seen so far. Keep up the good work. Your knowledge is always a great treasure for the Power BI community.
@mwaltercpa
@mwaltercpa 3 года назад
Great video, thank you Marco. I like how you drew it out on paper. I now view the SE like a math book... a collection of all of the figures and data required to perform math, however still requires the student (FE) to actually solve for the result.
@takuram4616
@takuram4616 3 года назад
Dropping knowledge bombs from start to finish, I feel smarter than I was 25mins before
@sue_bayes
@sue_bayes 3 года назад
Really helpful in understanding the two different engines. Loved the way you used the book analogy and paper and pen before moving on to the code. It's helped me in understanding how to analyse queries when optimising code and reminds me of TCP protocol, for example, in that each process is efficient as it specialises in it's own job, storage engine gets the data, formula engine calculates and visualises. Thank you
@louism.4980
@louism.4980 5 месяцев назад
This is phenomenal, thank you so much! This video deserves at least 1 million views! :)
@bisamurai
@bisamurai 3 года назад
Thanks Marco! Great video which I will most likely forward to everybody whoever asks about this instead of trying to explain myself :-)
@Milhouse77BS
@Milhouse77BS 3 года назад
A nice long video! Yeaa!
@NathanBlevins
@NathanBlevins 3 года назад
Great video and hugely informative. Thank you! Although I spend a lot of time in DAX, this did a great job in breaking down concepts and filling in gaps in what I know. :)
@Heshrodum89
@Heshrodum89 3 года назад
Excellent video. Thank you. I am a very visual learner and this explanation (along with your book) is incredibly helpful.
@urielramos1
@urielramos1 3 года назад
Thanks!!! Really good explanation !! 5 stars XD
@michaelmays9415
@michaelmays9415 3 года назад
Thanks for the excellent explanation! Looking forward to more of the videos on this topic
@gavclark66
@gavclark66 3 года назад
Great explanation, thanks a lot for this great content ! Question - if you have more than one visual and a different measure, like Total Cost, would it re-use the SE values (and the FE aggregates at a higher level) or run another query ? .
@SQLBI
@SQLBI 3 года назад
Every visual generates one or more query, regardless of the result of other visuals. If the visual request the same data requested before (same filters) it does not generate any query and reuse the previous result. Please note this is a cache at the report level and the engine does not receive any DAX query in this case. The FE does not cache any data. The SE has a cache for the last 512 queries per database. Different queries can reuse the result of previous SE queries. The SE cache is unaware of the original DAX query.
@tomaskavicky
@tomaskavicky 3 года назад
very good explanation
@AmdiSilword
@AmdiSilword 3 года назад
Very helpfull explanation. Only heart the words but didn't know how it works. I'am greatful for your videos.
@akhilannan
@akhilannan 3 года назад
That is an innovative way of explaining the difference between formula engine and storage engine using the book analogy! 👍 Question: I understand FE needs the SE results materialized In-Memory in an uncompressed form to do it's computation. Is the same applicable to DirectQuery? Does the SQL output gets materialized in memory before formula engine acts on it? Also, if FE don't have to do any computation on SE results, still the materialization happens before sending the results to client ?
@SQLBI
@SQLBI 3 года назад
Yes, the materialization always happens when SE moves data to FE, regardless of SE type (so DirectQuery does that, too) and FE processing (materialization happens even though there is no further calculation required).
@akhilannan
@akhilannan 3 года назад
@@SQLBI Thanks for the response. Does this mean a simple Evaluate 'TableName' will have the results materialized In-Memory until the results are returned to the client?
@marcorusso7472
@marcorusso7472 3 года назад
@@akhilannan Yes, definitely. For this reason, reports usually browse a window of rows in the result using TOPNSKIP.
@sandipansarkar9211
@sandipansarkar9211 7 месяцев назад
Finished watching
@jorgeeduardomoltenimoreno3048
@jorgeeduardomoltenimoreno3048 3 года назад
Great explanation, thanks
@mau_lopez
@mau_lopez 3 года назад
Excellent tutorial! Very interesting and useful to know! THX a lot Mr. Russo
@tangtom2478
@tangtom2478 3 года назад
Wish more content on this! Thanks
@atdotarvind
@atdotarvind 3 года назад
Hi Marco, Is there any way we can optimize export to excel data from the Power BI report?
@90s_HipHop
@90s_HipHop 3 года назад
If I am seeing 99% in the Formula Engine with 9 SE Queries but the total time is 87,357ms I know I have a problem. BUT where do I start looking? I assume its not a data issue due to the storage engine was fast (469ms) so I guess a DAX issue...?
@SQLBI
@SQLBI 3 года назад
Probably yes. We have several chapters about DAX Optimization in The Definitive Guide to DAX (the book) and we have a specific video course about that. Links: www.sqlbi.com/p/optimizing-dax-video-course/ www.sqlbi.com/books/the-definitive-guide-to-dax-2nd-edition/
@danjarupath
@danjarupath 3 года назад
Cool
@marcomori6907
@marcomori6907 3 года назад
Thx
@DanielADamico
@DanielADamico 3 года назад
For each video you post, I always imagine that you won't be able to produce a better video than the last one you posted... But I'm always wrong! Each video is always better, and it's getting better and better each day! It's unbelievable! You are definitively the DAX Masters! Thanks for sharing! 👏👏👏
@SQLBI
@SQLBI 3 года назад
Thanks!
@罗简单-r9v
@罗简单-r9v 3 года назад
thanks marco,I love this vedio......
@Bharath_PBI
@Bharath_PBI 3 года назад
Thank you for taking up this topic. So when materialization happens that's when 1 million row limit is triggered with top 1000001. If there was no materialization then Direct query wouldn't have this limit.
@SQLBI
@SQLBI 3 года назад
Correct!
@Bharath_PBI
@Bharath_PBI 3 года назад
@@SQLBI 1 question: Is there a way to avoid materialization and let the entire query execute in underlying SQL server (as with other bi tools) ? Cos, even though the final returned resultset is 10 rows, group by on a column in a dim, which has 1.5M rows on a selected date, it throws this 1M limit error. Users expect to see the data without filters at first.
@Rrocker1405
@Rrocker1405 3 года назад
Thank you @sqlbi for the amazing tutorial as always about SE and FE along with calculation groups. I have implemented the calculation for a report but the complex nature of the requirement is to have 3 layers of drill down at row level and 3 layers of drill down at column level and all of them have time intelligence e.g., MTD, QTD, YOY against Actuals, Budget and Actuals v Budget information per selected criteria e.g., Net sales, Gross Sales, PBT et cetera. The performance just drags completely and just fails later after hitting threshold. Could there be anything that can be done to improve the performance? The measures uses keep filters, selected measure with time intelligence calculation. Needless to say it is a matrix view. Any tip, suggestion would help.
@SQLBI
@SQLBI 3 года назад
As usual, it depends. Analyzing performance issues requires deeper evaluation of query plans. Knowing the difference between SE and FE is just the starting point. We have several chapters in The Definitive Guide to DAX ( www.sqlbi.com/books/ ) and an entire videocourse ( www.sqlbi.com/p/optimizing-dax-video-course/ ) to walk through the required steps! There could be just too many reasons - for example, time intelligence mixed to distinct count measures or bidirectional filters could have a big impact, but it's just one of the many possible reasons...
Далее
Optimizing nested iterators in DAX
17:31
Просмотров 21 тыс.
The Power BI Engine in 20 minutes
21:13
Просмотров 912
When to use KEEPFILTERS over iterators
18:56
Просмотров 48 тыс.
Filter columns, not tables, in DAX
20:37
Просмотров 12 тыс.
Inside the VertiPaq Engine - Marco Russo
1:09:54
Просмотров 4,7 тыс.
Understanding data lineage in DAX
18:14
Просмотров 30 тыс.
Debug DAX using Variables in Power BI
15:41
Просмотров 89 тыс.
Row context in DAX explained visually
21:45
Просмотров 15 тыс.
Power BI on Databricks Best Practices
50:51
Просмотров 15 тыс.
What is DAX?
17:48
Просмотров 41 тыс.