Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranรฎ)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
Tutor: Up next, let's talk about the Performance Analyzer
which is another tool that's native to Power BI.
And the Performance Analyzer is a tool that records all
of the behind the scenes actions
that are happening within your report.
When filters are changed,
a visual is updated, cross filtering occurs,
DAX measures are calculated, et cetera.
Basically, anytime something is updated within the report
the performance Analyzer records it
and will then display it for you.
So you can almost think of this like Excel's macro recorder.
The Performance Analyzer tracks the time
in milliseconds for each action
and then groups those actions into distinct buckets,
query load time, the visual load time, other tasks
and then you'll have a specific line item
for direct query visuals
if a direct query connection is present.
So looking at this Performance Analyzer image on screen
we can see here the output of each of these steps.
After the Performance Analyzer is finished recording
all of those recorded steps will show
up with an associated time, they'll be named
and they'll be in this pane here.
And by expanding an individual query
like our card query that we have highlighted,
you'll be able to see all of these different buckets.
So let's talk about each of these categories.
First, we've got the DAX query, and this shows the amount
of time that it takes for the visual to send the query
to the internal engine for the engine to process and run it
and then to return the result.
So basically this is how long it takes the DAX engines
to process your code.
And for the DAX query specifically
this is where some external tools,
like DAX Studio are really useful for optimizations.
Next up we have the visual display bucket
and this bucket shows the amount
of time it takes for the visual you've selected to render.
In basic terms, it's simply just the time it takes
for that visual to kind of draw itself on screen.
Now, keep in mind that if the visual contains web-based
or geocoded images, those will also be included
in this duration as well.
And then last we've got our other bucket.
In the other bucket
it's really just all of the other tasks that the engine is
performing that aren't related to either creating the visual
or returning the results of the specific DAX query.
So the other bucket includes activities
like preparing the query, waiting for other visuals
on the page to complete their queries,
plus other background tasks that the engines are performing.
All right, so let's head over to Power BI
and we're gonna explore
the Performance Analyzer for ourselves.
All right, so back in our AdventureWorks report here.
And first things first, I'm gonna collapse these panes,
I'm gonna remove formatting.
We'll clean this up a little bit,
and then I'm gonna select the white space here just
so we don't have a specific visual selected.
So if we come up to the optimized pane
we're gonna click on Performance Analyzer.
And this launches a brand new Performance Analyzer pane.
And we'll change the size of this a little bit.
You can see
that we have one option here right now is start recording.
So if we click start recording, nothing's happened yet.
So there's two ways to start generating this list of items.
We can either click this refresh visuals button
and this is going to refresh all of the visuals on the page
or you could start interacting with the report
and that will also trigger this
Performance Analyzer list to populate.
So let's start off here
and we're gonna click Refresh Visuals.
So what this does is Power BI goes through
and it's going to refresh all
of the different visuals within the page
and it's gonna return the results in milliseconds, right?
And you can see we've got a bunch of different values here.
And if we expand one of these
we can start at the top of the list here.
Like with our left nav background
you can see that the visual display took 604 milliseconds
and then our other bucket took 453 milliseconds.
Because this is more or less an image
there's no DAX associated with this, right?
So it makes sense that we're not seeing that DAX bucket.
Same thing with our next shape here.
We've got this shape that's highlighted
for this first kind of KPI card.
And you can see again in total it took 1,049 milliseconds
for this to initially load.
The visual display was 604
and then the other bucket was 444.
So pretty straightforward there.
Let's collapse these and let's head down to our first card.
So now, because this card actually contains a DAX query
we now have that detail.
So again, this is a long time right to wait
for this to load, 5,966 milliseconds.
But what's interesting here is the DAX query was 408,
the visual display was 23, and the other component, right
that time that we spent waiting
for everything else to kind of load
or render ahead of this took 5,535 milliseconds.
So again, you get some really interesting insights here
as you start poking around at how long load times take.
All right, so at any point here, you know, say you're happy
with the results here, you kind of understand how
things are working, click stop.
We can close out of the Performance Analyzer pane.
And then again, it's a simple is turning it back on again,
start recording, and then we can refresh all
of the visuals to get those durations
and milliseconds again.
One other interesting thing to call out here is
that you can actually export the entire list here
as a JSON file, right?
So if you click export, it's basically
gonna give you this entire output in JSON format.
Pretty cool stuff here.
And at this point you may be thinking,
"All right this is great.
Like I can see what's happening
and I can export this as a JSON file.
But what does that mean?
Like what do I do with this?"
And there are some great performance optimization tips
on learn.microsoft.com.
So things like making sure
that your data model is really well built, right?
A lot of those best practices that we covered
in the modeling section, limiting the number
of visuals on the page to only what's necessary, right?
That's gonna help decrease those other wait times.
Making sure that you're applying restrictive filters so that
only the data that needs to be loaded is actually loaded.
You know, if you're using custom visuals
check on their performance, right?
Is a custom visual loading really slowly
and dragging down the overall performance of your report?
And you can also start digging into your DAX,
right within the Power BI report as well.
So let's say that you notice one
of your DAX calculations is running really, really slow.
You know, let's jump down to, you know
this revenue trending chart here, right?
But let's say your DAX query here is running
very, very slow.
You could dig into that measure and try and determine
what types of DAX optimizations could be made.
Maybe you're using iterator functions that end
up being slower than you anticipated
or maybe you're using a bunch
of different logical functions that are slowing things down.
So there's some instances like that where
you could kind of discern or understand like,
"Hey, if I update these functions that I'm using
within a measure that may impact the optimization."
But if you're really looking for some deeper optimizations
and understanding into exactly what's happening,
there are some great third party tools, like Dax Studio
and we're gonna talk about some of those quickly, next.
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.