How does cardinality impact model performance?
Example
- You could have 3 distinct values or 300 rows but it is the distinct values that impacts performance
Name some data loading best practice?
What is the best practice way to remove rows?
What is the best practice way to remove columns?
What do columns in a data model do?
Columns in a data model serve one of two purposes: a) support visuals or calculations b) support both
How can you prevent new columns from breaking reports?
What is Performance Analyser?
How does Performance Analyser work?
Explain how to use Performance Analyser?
How can you improve cardinality by changing data types?
In Power BI two data types can be used for decimal numbers:
HOW:
Recognise which columns could be split to reduce cardinality
How can you improve cardinality through summarisation?
HOW
How can aggregations impact data model performance?
How can you create an aggregation table?
3 ways include
How can you manage an aggregation table?
Fields pane > Manage aggregations
For each column you select the appropriate summarisation and corresponding details table:
Select apply all
What happens if your queries cannot be resolved using an aggregation table?
In case the aggregation table is insufficient the detail table will be used
What are the benefits of efficient data models?
Fast running queries in the report
Fast running measures and calculations
What is the cause of bad model performance?
Bad performance is usually a result of:
Bad data models (too much unnecessary data)
Bad DAX (too many unnecessary row calculations)
Mix of the two
Name the characteristic of bad report performance? What’s the consequence of this?
From a report user’s perspective, poor performance is characterized by:
Loading pages into report taking too long
Visuals not responding fast enough
Tables not refreshing quickly enough
Large files put strain on organisations resources
The poor performance of a report leads to a negative user experience.
This poor performance results in a negative user experience.
Name the query optimisation process steps:
Minimising the size of the data model
Deleting unnecessary columns and rows.
Summarizing data where possible (must ensure correct data types are applied to enable this by analysing model metadata)
Reducing cardinalities.
Replacing numeric columns with measures.
Avoiding repeated values.
What are the limitations of data model optimisation practices?
Explain how data model size can impact performance?
When is a report likely to have poor performance?
If your data model has: multiple tables complex relationships intricate calculations multiple visuals redundant data
How to run performance analyser?
To ensure you get the most accurate results in your analysis (test) you need to clear the visual cache and data engine cache
Visual cache – (a) When you load a visual, you can’t clear this visual cache without closing Power BI Desktop and opening it again. To avoid any caching in play, you need to start your analysis with a clean visual cache. (b) To ensure that you have a clear visual cache, add a blank page to your Power BI Desktop (.pbix) file and then, with that page selected, save and close the file. Reopen the Power BI Desktop (.pbix) file that you want to analyze. It will open on the blank page.
Data engine cache: (a) When a query is run, the results are cached, so the results of your analysis will be misleading. You need to clear the data cache before rerunning the visual. (b) To clear the data cache, you can either restart Power BI Desktop or connect DAX Studio to the data model and then call Clear Cache.
After you have cleared cache go to performance analyser
Start recording and select the page of the report you want to analyse and select the elements you want to measure
When you are finished press stop
How to review the performance analyser results?
Check the performance analyser pane
Sort the results
DAX query - The time it took for the visual to send the query, along with the time it took Analysis Services to return the results.
Visual display - The time it took for the visual to render on the screen, including the time required to retrieve web images or geocoding.
Other - The time it took the visual to prepare queries, wait for other visuals to complete, or perform other background processing tasks. If this category displays a long duration, the only real way to reduce this duration is to optimize DAX queries for other visuals, or reduce the number of visuals in the report.